子文档数组中的 _id 是否确保在该数组中是唯一的
Are _ids in a sub document array assured to be unique within that array
MongoDB
我知道如果你有一个子文档数组,并且你在这些子文档上索引了一些字段,那么该字段只能保证在整个集合中是唯一的,而不是在那个单个数组中。
这些子文档的 _id 属性 是否也是如此?
例如,如果我有以下
{
_id: 'Parent ID',
subdocArray: [
{
_id: 'Child ID 1'
}
]
}
我决定向数组中添加另一个子文档,确保 _id 字段的唯一性与在常规顶级文档中的唯一性相同。
不,_id
对子文档数组中的MongoDB没有特殊意义。
但是,正如 here 所要求的那样,您可以在向数组添加元素时手动强制执行此所需的限制。
db.coll.update(
{_id: 'Parent ID', 'subdocArray._id': {$ne: 'Child ID 1'}},
{$push: {subdocArray: {_id: 'Child ID 1'}}})
MongoDB
我知道如果你有一个子文档数组,并且你在这些子文档上索引了一些字段,那么该字段只能保证在整个集合中是唯一的,而不是在那个单个数组中。
这些子文档的 _id 属性 是否也是如此? 例如,如果我有以下
{
_id: 'Parent ID',
subdocArray: [
{
_id: 'Child ID 1'
}
]
}
我决定向数组中添加另一个子文档,确保 _id 字段的唯一性与在常规顶级文档中的唯一性相同。
不,_id
对子文档数组中的MongoDB没有特殊意义。
但是,正如 here 所要求的那样,您可以在向数组添加元素时手动强制执行此所需的限制。
db.coll.update(
{_id: 'Parent ID', 'subdocArray._id': {$ne: 'Child ID 1'}},
{$push: {subdocArray: {_id: 'Child ID 1'}}})