在 mongoose schema 中有两种定义嵌套对象的方法
var childSchema = new Schema({
name: String,
age: Number
})
var parentSchema = new Schema({
children: [childSchema]
})
和
var parentSchema = new Schema({
children: [{
name: String,
age: Number
}]
})
那么它们有什么区别呢?我应该如何选择使用哪一个?
最佳答案
同样的事情。在第二个版本中省略显式 childSchema
定义只是一个 alternate declaration syntax .
唯一的区别是您是否有权访问子文档的架构对象(在第二个版本中您没有childSchema
)。使用第一个版本的一个原因是如果你需要设置一个 option在子架构上,如果您不希望这样做,例如抑制 _id
字段。
var childSchema = new Schema({
name: String,
age: Number
}, {
_id: false
});
您将无法使用替代语法来做到这一点。
关于node.js - Mongoose 中的子文档和嵌套对象有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26549661/