MongoDB字段只接受3个特殊值


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`,
},
},
}

有关generaell中mongoose中自定义验证器和验证的更多详细信息,请参阅mongoose验证文档。

最新更新