可以在mongoose中使用子文档吗?

时间:2017-04-25 21:04:40

标签: node.js mongodb mongoose

是否可以在mongoose中使用嵌套模式并在子项上具有必需的验证器?像这样:

const userSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true
  }
});

const eventSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true
  },
  host: {
    type: userSchema,
    required: true
  }
});

我在文档中找不到任何内容。感谢。

4 个答案:

答案 0 :(得分:5)

是的,您的架构是正确的。

可以找到mongoose嵌套模式(SubDocuments)的文档here

答案 1 :(得分:1)

您可以在mongoose中使用嵌套模式。

它还会在每个子模式值上为您提供对象ID。

答案 2 :(得分:1)

我想你会用user model类型的子文档更新eventSchema。 您可以使用{ runValidators: true}进行更新。

eventModel.update({ name: 'YOUR NAME' }, { $push: { host: user } }, { runValidators: true}, function(err) {

})

答案 3 :(得分:1)

需要的是在Mongoose(from docs)中添加到架构或子模式的验证器 因此,可以在Mongoose中将子模式或子文档的必填字段设置为true(默认情况下为false)。 您创建的示例架构是正确的。