是否确保子文档数组中的_id在该数组中是唯一的

时间:2018-07-20 18:58:21

标签: arrays mongodb subdocument unique-id

MongoDB

我知道,如果您有一个子文档数组,并且对这些子文档中的某些字段建立了索引,则只能确保该字段在整个集合中是唯一的,而不是在单个数组中。

这些子文档的_id属性是否同样适用? 例如,如果我有以下内容

{
  _id: 'Parent ID',
  subdocArray: [
    {
      _id: 'Child ID 1'
    }
  ]
}

我决定将另一个子文档添加到数组中,可以确保_id字段的唯一性与在常规顶级文档中相同。

1 个答案:

答案 0 :(得分:1)

否,_id在MongoDB子文档数组中没有特殊含义。

但是,按照要求here,您可以在向数组添加元素时手动执行此所需的限制。

db.coll.update(
    {_id: 'Parent ID', 'subdocArray._id': {$ne: 'Child ID 1'}}, 
    {$push: {subdocArray: {_id: 'Child ID 1'}}})