有两种方法可以在mongoose模式中定义嵌套对象
var childSchema = new Schema({
name: String,
age: Number
})
var parentSchema = new Schema({
children: [childSchema]
})
和
var parentSchema = new Schema({
children: [{
name: String,
age: Number
}]
})
那么它们之间的区别是什么?我应该如何选择使用哪一个?
答案 0 :(得分:1)
同样的事情。在第二个版本中省略显式childSchema
定义只是alternate declaration syntax。
唯一的区别是您是否可以访问子文档的架构对象(您在第二个版本中没有childSchema
)。使用第一个版本的一个原因是,如果您需要在子架构上设置option,例如如果您不想要这样,则取消_id
字段。
var childSchema = new Schema({
name: String,
age: Number
}, {
_id: false
});
您无法使用备用语法执行此操作。