模式验证中所需的Mongoose数组不起作用

时间:2018-05-03 10:12:46

标签: mongodb mongoose mongoose-schema

在我的模式中,我需要有一个数组,它必须始终不为null且未定义。

所以我定义了它是必需的,但是验证没有按照我的预期工作,因为如果我省略了属性,则不会抛出错误。

如果是简单的属性(不是数组),这就像我预期的那样工作

const nodeSchema = new Schema({
    address: { type: String, required: true },
    outputs: { type: [String], required: true }
})

2 个答案:

答案 0 :(得分:0)

  

数组隐式地具有默认值[](空数组)。

这是问题

答案 1 :(得分:0)

我认为您可以通过添加自定义验证器来解决此问题:

const nodeSchema = new Schema({
    address: { type: String, required: true },
    outputs: {
      type: [String],
      required: true,
      validate: [(value) => value.length > 0, 'No outputs'],
    }
})

希望对您有帮助。