Mongoose - 在创建父文档时如何需要子文档数据?

时间:2013-12-12 15:59:47

标签: node.js mongodb mongoose

我刚开始使用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键或者我是以错误的方式解决这个问题,有没有办法触发验证错误?

1 个答案:

答案 0 :(得分:1)

经过一些更多的摆弄,我想我已经得到了它!使用type键指定架构允许我也设置required: true。好像现在好了。

更新架构:

var ParentSchema = new Schema({
    name: { type: String, required: true },
    children: {
        type: [{
            name: { type: String, required: true }
        }],
        required: true
    }
});