使用验证器创建集合
db.createCollection("claims",
{ validator : { $jsonSchema : { bsonType : "object",
properties : { airportCode : { bsonType: "string"} },
additionalProperties: false}
} } )
插入
db.claims.insert({"airportCode" : "DSM"})
=>结果:“errmsg”:“文档验证失败”
如果我通过创建集合删除“additionalProperties: false
”,那么我可以插入文档。
任何建议,如何保留“additionalProperties: false
”,因为我想控制文件。
答案 0 :(得分:7)
与MongoDB 3.6.2一样,JSON Schema验证不会自动添加默认的_id
属性,因此在使用additionalProperties: false
时需要包含此规则。
例如,假设默认的ObjectID:
db.createCollection("claims",
{ validator : {
$jsonSchema : {
bsonType : "object",
properties : {
_id: { bsonType: "objectId" },
airportCode : { bsonType: "string"}
},
additionalProperties: false
}
}}
)
在MongoDB Jira问题跟踪器上进行upvote / watch的两个相关问题: