MongoDB
我知道,如果有一个子文档数组,并且在这些子文档上索引了某个字段,那么只能保证该字段在整个集合中是唯一的,而不是在单个数组中。
这同样适用于那些子文档的id属性吗? 例如,如果我有
{ _id: 'Parent ID', subdocArray: [ { _id: 'Child ID 1' } ] }
我决定将另一个子文档添加到数组中,可以肯定的是,id字段将是唯一的,就像它在普通顶级文档中一样。
不, _id 在子文档数组中对MongoDB没有特殊意义。
_id
然而,如所问 here ,可以在向数组中添加元素时手动实施此所需限制。
db.coll.update( {_id: 'Parent ID', 'subdocArray._id': {$ne: 'Child ID 1'}}, {$push: {subdocArray: {_id: 'Child ID 1'}}})