我有一个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个表示,那么有没有办法在模式定义上处理它?</ p>
答案 0 :(得分:1)
如果不声明数组,则无法嵌入模式对象,但是您可以将表示模式定义为普通的javascript对象(而不是模式实例):
var presentations_schema = {
your_field: {type: String, required: true} // etc
}
然后你可以这样做:
presentation: presentations_schema
在http://mongoosejs.com/docs/guide.html中,请参阅第一个示例中的元字段。
答案 1 :(得分:1)
如果“ presentation”是子模式,则假设是这样的:
var presentation_schema = new Schema ({
name:{
type: String,
}
});
,您希望它只应在主模式中出现一次,而不是将其嵌入到这些方括号[]内,它们表示数组或列表,您可以这样表示
演示:presentation_schema