mongodb validation--像关系型数据库表去使用mongodb

例子:

定义表:

db.createCollection( "contacts",
{ validator: { $and:
[
{ phone: { $type: "string" } },
{ email: { $type: "double"} },
{ status: { $in: [ "Unknown", "Incomplete" ] } }
]
}
} )

表名:contacts ,必修包含的字段: phone 且类型是string,email 且类型是double,status 且值必须是Unkown或Incomplete。

可以根据以下命令进行修改

db.runCommand( {
collMod: "contacts",
validator: { $and: [ { phone: { $type: "string" } }, { email: { $regex: /@mongodb.com$/ } }, { status: { $in: [ "Unknown", "Incomplete" ] } } ] },
validationLevel: "moderate",

validationAction: "error"

} )

该命令示例 修改了email必须以@mongodb.com值结尾。

validationLevel的取值意义:
VALIDATIONLEVELDESCRIPTION
“off” 关闭数据校验。
“strict” 默认值。对所有的update和insert有效。
“moderate” 仅对insert和满足校验规则的document做update有效。对已存在的不符合校验规则的document无效。
validationAction的取值意义:
“error” 默认值。document必须满足校验规则,才能被写入数据哭。
“warn” document不符合校验规则的,MongoDB允许写入,但会记录一条告警到mongod.log中去。日志内容记录报错信息以及该document的完整记录。
 

 

 备注:db.getCollectionInfos() 命令可以查看表字段的限制信息。
posted @ 2018-06-05 17:32  yimison  阅读(555)  评论(0编辑  收藏  举报