我刚开始使用Mongoose(v3.8.1)并正在尝试子文档和验证。据我所知(从本页底部:http://mongoosejs.com/docs/subdocs.html),以下是设置架构的正确方法:
var ParentSchema = new Schema({
name: { type: String, required: true },
children: [{
name: { type: String, required: true }
}]
});
然后我可以执行以下操作来创建文档/子文档:
ParentModel.create({
name: "Parent 1",
children: [
{ name: "Child 1" },
{ name: "Child 2" },
]
}, callback);
这完全有效,如果我省略任何子名称,验证将失败。但是,如果我完全省略children
键,则验证通过并插入一个空数组。
因此,如果省略children
键或者我是以错误的方式解决这个问题,有没有办法触发验证错误?
答案 0 :(得分:1)
经过一些更多的摆弄,我想我已经得到了它!使用type
键指定架构允许我也设置required: true
。好像现在好了。
更新架构:
var ParentSchema = new Schema({
name: { type: String, required: true },
children: {
type: [{
name: { type: String, required: true }
}],
required: true
}
});