我们假设我有这样的架构
var Language = new Schema({
name: { type: String, unique: true, required: true },
pos: [{
name: String,
attributes: [{
name: String
}]
}]
});
pos
和attributes
中的每个项目是否都有_id
?如果我向name
数组中的pos
字段添加唯一索引,是仅对该数组强制执行唯一性,还是对所有条目都唯一?
答案 0 :(得分:3)
不,像pos
和attributes
这样没有自己架构的嵌入式文档没有_id
属性。
如果您向name
数组中的pos
字段添加唯一索引,则会在整个集合中强制执行唯一性,但在单个文档的数组中强制不 。请参阅this post。
答案 1 :(得分:1)
在Mongoose 4中,pos
和attributes
将获得自己的架构。您可以阻止它们像这样获取_id属性:
// ...
attributes: [{
name: String,
_id: false
}]
// ...