必需的子文档Mongoose

我已经定义了下面的Mongoose模式

var subSchema = new Schema({ propertySub: {type: String, required: true} }); var mainSchema = new Schema({ mainProperty: {type: String, required: true}, subs: [subSchema] }); 

正如你可能看到subSchema上有一个必需的属性,问题是我想要一个mainSchema被要求有至less一个subSchema ,但是当我发送一个

 { "mainProperty" : "Main" } 

没有失败。

我试过类似的东西

 subs: [{ type: subSchema, required: true }] 

但它会抛出以下内容:

TypeError:未定义的typesundefined在array subs

所以无论如何要做到这一点,也许validate我是新来的节点和mongoose所以一个解释将不胜感激

是的,你将要使用validation,或者如果你愿意,你可以用一个预存钩来validation。 这里有一个使用validation的例子

 var mainSchema = new Schema({ mainProperty: {type: String, required: true}, subs: { type: [subSchema], required: true, validate: [notEmpty, "Custom error message"] } }); function notEmpty(arr) { return arr.length > 0; }