node.js - Mongoose 中的子文档和嵌套对象有什么区别?

标签 node.js mongodb mongoose

在 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/

相关文章:

node.js - 将node.js应用程序部署到谷歌云平台时出现无法找到模块 'yargs'错误

mysql - 如何使用sequelize和mysql设置默认值?

node.js - Sails/Bookshelf 运行使用 Sails/Bookshelf 环境的脚本

javascript - 无法将 Mongolab 与 MongodbShell 连接

javascript - Mongoose /MongoDB : $in and . 排序()

node.js - 尽管 Mongoose 连接到所需的数据库, Mongoose 集合还是创建了自己的数据库

node.js - 如何使用带有可选参数的 Mongoosejs 'find' 函数?

javascript - Angular JS路由不起作用

mongodb - 使用 mongoose 过滤 mongoDB 中的嵌套数组

node.js - MongoDB 插入嵌套数组