使用以下mongoose架构
mongoose.Schema({
world: String,
color: [{ name: String }]
});
为我提供包含_id
字段的子文档的文档。
{ _id: 'a9ec8475bf0d285e10ca8d42'
world: 'matrix',
color: [
{ name: 'blue', _id: '4a8c0e12135fa32e13db9ce9' },
{ name: 'red', _id: '4a8c0a62254cd32e13db4ad8' },
{ name: 'white', _id: '4a8c04e2687ea32e13db1da7' }
]
我想知道这些子文档_id
中的每一个是否在所有文档中都是唯一的,或者只是跨越它所在的嵌套级别。
编辑:子文档没有引用另一个集合,它是使用上面的普通mongoose模式创建的。
答案 0 :(得分:0)
我假设子文档引用了另一个集合。 如果我的假设是正确的,那么您拥有的嵌套文档仅在嵌套级别上是唯一的。
答案 1 :(得分:0)
这是Mongoose的一个问题。 Mongoose为幕后的每个嵌套对象创建模式。这意味着_id只在嵌套级别上是unquie。
Look at this previous question关于如何防止这种情况发生