标签:mail math sci unknown one 表达式 data man address
mongo insert,update document时候的校验规则
db.createCollection(...,{validator:})
existing collection
collMod command
$jsonSchema匹配满足指定的JSON Schema
语法
{ $jsonSchema: <JSON Schema object> }
例如
db.createCollection("students", {
validator: {
$jsonSchema: {
bsonType: "object",
required: [ "name", "year", "major", "address" ],
properties: {
name: {
bsonType: "string",
description: "must be a string and is required"
},
year: {
bsonType: "int",
minimum: 2017,
maximum: 3017,
description: "must be an integer in [ 2017, 3017 ] and is required"
},
major: {
enum: [ "Math", "English", "Computer Science", "History", null ],
description: "can only be one of the enum values and is required"
},
gpa: {
bsonType: [ "double" ],
description: "must be a double if the field exists"
},
address: {
bsonType: "object",
required: [ "city" ],
properties: {
street: {
bsonType: "string",
description: "must be a string if the field exists"
},
city: {
bsonType: "string",
"description": "must be a string and is required"
}
}
}
}
}
}
})
除$near,$nearSphere,$text,$where
外
db.createCollection( "contacts",
{ validator: { $or:
[
{ phone: { $type: "string" } },
{ email: { $regex: /@mongodb\.com$/ } },
{ status: { $in: [ "Unknown", "Incomplete" ] } }
]
}
} )
validation 在insert,update 触发,collection新添加 validation,之前的document不会触发校验
validationlevel用来决定对于校验,mongo采用什么样的操作
strict(default)
应用校验到所有insert,update
moderate
应用校验到满足校验的document
off
关闭校验
error (default)
拒绝所有违反校验的insert,update
warn
mongo会记录下来但会让其通过校验
不能在admin,local,config库和system.*集合中设置校验
标签:mail math sci unknown one 表达式 data man address
原文地址:https://www.cnblogs.com/szbnl/p/11245207.html