【发布时间】:2021-01-21 13:16:10
【问题描述】:
我有一个 Schema,它的属性是预定义的字符串数组类型。
这是我尝试做的:
interests: {
type: [String],
enum: ['football', 'basketball', 'read'],
required: true
}
问题是,当我尝试输入未在枚举上定义的错误值时,它不会使用枚举列表对其进行验证。
例如,这会通过它不应该通过:
{ "interests": ["football", "asdf"] }
因为"asdf" 没有在枚举列表中预定义,所以它不应该通过验证,但不幸的是,它通过了验证并保存了它。
我试图用字符串类型的值而不是字符串数组来检查这个东西,它可以工作。
例如:
interests: {
type: String,
enum: ['football', 'basketball', 'read'],
required: true
}
例如,这是按预期失败的:
{ "interest": "asdf" }
总之,我需要一个带有字符串数组类型的模式属性,它可以根据预定义的值检查它的元素
实现这个目标最有效的方法是使用 validate 方法还是有更好的方法?
【问题讨论】:
标签: node.js arrays mongodb mongoose enums