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

Eli*_*cia 5 mongoose mongodb node.js

是否可以在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
  }
});
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*ger 5

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

可以在此处找到mongoose嵌套模式(SubDocuments)的文档

  • 显然,只有当您在父文档上运行“save()”时,子文档才会被验证。如果您在父文档中运行任何类型的“更新”,则子文档将不会被验证。看一下这个案例:https://github.com/Automattic/mongoose/issues/5234 和:http://mongoosejs.com/docs/validation.html ->“验证是中间件。Mongoose 将验证注册为预验证默认情况下,('save') 挂钩每个模式。”。但是,“您可以使用 doc.validate(callback) 或 doc.validateSync() 手动运行验证” (2认同)