Mongoose中子文档和嵌套对象之间的区别是什么?

时间:2014-10-24 14:11:56

标签: node.js mongodb mongoose

有两种方法可以在mongoose模式中定义嵌套对象

var childSchema = new Schema({
  name: String,
  age: Number
})

var parentSchema = new Schema({
  children: [childSchema]
})

var parentSchema = new Schema({
  children: [{
    name: String,
    age: Number
  }]
})

那么它们之间的区别是什么?我应该如何选择使用哪一个?

1 个答案:

答案 0 :(得分:1)

同样的事情。在第二个版本中省略显式childSchema定义只是alternate declaration syntax

唯一的区别是您是否可以访问子文档的架构对象(您在第二个版本中没有childSchema)。使用第一个版本的一个原因是,如果您需要在子架构上设置option,例如如果您不想要这样,则取消_id字段。

var childSchema = new Schema({
  name: String,
  age: Number
}, {
  _id: false
});

您无法使用备用语法执行此操作。