我已经定义了以下 Mongoose 模式

var subSchema = new Schema({
    propertySub: {type: String, required: true}
});

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

正如您可能看到的 subSchema 上有一个必需的属性,问题是我希望 mainSchema 至少需要一个 subSchema ,但是当我发送一个
{
    "mainProperty" : "Main"
}

没有失败。

我试过类似的东西
subs: [{
    type: subSchema,
    required: true
}]

但它抛出以下内容:



所以无论如何要这样做?,也许使用 validate 我是 node 和 mongoose 的新手,因此将不胜感激

最佳答案

是的,您要么想要使用验证,要么可以根据需要使用预存钩子(Hook)进行验证。这是使用验证的示例

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;
}

关于node.js - 所需的子文件 Mongoose,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43037643/

10-11 19:38