必需的子文档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:未定义的types
undefined
在arraysubs
所以无论如何要做到这一点,也许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; }