mongoose中的嵌套对象模式

时间:2012-08-11 21:27:58

标签: mongodb mongoose

我们假设我有这样的架构

var Language = new Schema({
    name: { type: String, unique: true, required: true },
    pos: [{
        name: String,
        attributes: [{
            name: String
        }]
    }]
});

posattributes中的每个项目是否都有_id?如果我向name数组中的pos字段添加唯一索引,是仅对该数组强制执行唯一性,还是对所有条目都唯一?

2 个答案:

答案 0 :(得分:3)

不,像posattributes这样没有自己架构的嵌入式文档没有_id属性。

如果您向name数组中的pos字段添加唯一索引,则会在整个集合中强制执行唯一性,但在单个文档的数组中强制 。请参阅this post

答案 1 :(得分:1)

在Mongoose 4中,posattributes将获得自己的架构。您可以阻止它们像这样获取_id属性:

// ...
    attributes: [{
        name: String,
        _id: false
    }]
// ...