MongoDB 字段只接受 3 个特殊值

MongoDB field only accepts 3 special values

      slider_value: {
        type: Number,
        required: false,
      },

这是我的 MongoDB 模型中字段之一的 Mongoose 模式。

它可能只接受1, 4, and 10的整数值。

如何在架构中指定此验证器?

如果您只需要存储这三个值中的一个,将它们存储为字符串,并使用 enum 键进行验证是合理的。例如,它可能看起来像这样:

{
  slider_value: {
    type: String,
    enum: ["1", "4", "10"],
  },
}

或者,如果需要以 int 形式存储它们,您可以使用自定义验证器在保存值之前检查值。看起来像这样:

{
  slider_value: {
    type: Number,
    validate: {
      validator: value => value === 1 || value === 4 || value === 10,
      message: props => `${props.value} is invalid for slider_value`,
    },
  },
}

有关 generell 中 mongoose 中的自定义验证器和验证的更多详细信息,请参见此处 mongoose validation docs