mongoose - 如何在 Mongoose 模式中创建不是数组的子模式

标签 mongoose

我有一个 Mongoose 模式,其中有 4 个子模式。我一直在关注这里的文档https://github.com/LearnBoost/mongoose关于嵌入文档

var scenarios = new Schema({
    title: 'String',
    type: 'String',
    description:  'String',
    authorId:  'String',
    categories:  [categoriesSchema],
    subcategories: [subcategories_schema],
    presentation: [presentations_schema],
    scripts: [scripts_schema],
    revision: 'String',
    createDate: 'String',
    updateDate: 'Date',
    active: 'Boolean',
    display:  'Boolean',
    status: [statusSchema],
    video: [video_schema],
    bundleId: [bundleSchema],
    sortOrder: 'Number'
});

我的问题是,例如,如果我不希望演示文稿成为数组,并且只想每个场景允许 1 个演示文稿,是否有办法在架构定义上处理该问题?

最佳答案

如果不声明数组,您就无法嵌入架构对象,但是您可以将演示架构定义为纯 JavaScript 对象(而不是架构实例):

var presentations_schema = {
    your_field: {type: String, required: true} // etc
}

然后你可以这样做:

presentation: presentations_schema

http://mongoosejs.com/docs/guide.html ,请参阅第一个示例中的元字段。

关于mongoose - 如何在 Mongoose 模式中创建不是数组的子模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20892750/

相关文章:

javascript - mongoose/mongodb 查询多重排序

javascript - 如何将内部回调的结果传递到其父函数中?

javascript - 通过中间件检查多权限

node.js - mongoDB 子文档匹配,其中 elemMatch 不是对象

node.js - mongoose-unique-validator 检测所有输入是否已存在

javascript - MongoDB:如何更新嵌套数组

node.js - 更新 Mongoose 架构后,新输入的字段不会插入已创建的集合中

node.js - 一个 JavaScript 框架,包括服务器端和客户端,用于描述表单并验证它们?

rest - 使用 Mongoose 进行错误处理

node.js - 使用 MongoDB 和 Mongoose 构建收藏夹列表?