答案 0 :(得分:0)
MongoDB 3.2更新
MongoDB现在支持文档验证。
documentation 中的示例:
db.createCollection( "contacts",
{ validator: { $or:
[
{ phone: { $type: "string" } },
{ email: { $regex: /@mongodb\.com$/ } },
{ status: { $in: [ "Unknown", "Incomplete" ] } }
]
}
} )
答案 1 :(得分:0)
Mongoose 有一个内置的正则表达式验证器:属性的 match
字段。
还请记住,Mongoose 具有任意验证,并且您应该几乎永远不要在将数据输入数据库之前直接进行其他验证,因为那样应该< /em> 重复。 ORM(或者,对于 MongoDB,ODM)的重点是处理数据结构。
不过,我将展示 match
的使用以及更一般的验证器,但在这种情况下,最好使用 match
。
const address = {
city: {
type: String,
required: true,
maxlength: 25,
// Built in match validator.
match: /^[^$]+$/,
// Single validator
validate(value) {
return !value.includes("$")
},
// Single validator with message
validate: {
validator(value) {
return !value.includes("$")
},
message: "city must not include a dollarsign"
},
// Multiple validators
validate: [
{
validator(value) {
return !value.includes("$")
},
message: "city must not include a dollarsign"
},
{
// Other validation logic
}
]
}
country: {
type: String,
required: true,
maxlength: 25
}
postalcode: {
type: String,
required: true,
maxlength: 9
}
}