MongoDB 集合的数据验证规则是通过 BSON 文档验证器来定义的。这些验证规则可以确保插入或更新到集合中的文档满足特定的条件。你可以使用 collMod
命令来为现有集合添加、修改或删除验证规则。
以下是一些常见的 BSON 文档验证器规则:
- 类型检查:确保文档的字段具有预期的数据类型,例如字符串、数字、布尔值等。
- 范围检查:对于数值类型,可以指定最小值和最大值。
- 长度检查:对于字符串类型,可以指定最小和最大长度。
- 模式匹配:使用正则表达式来匹配字符串字段的值。
- 唯一性检查:确保文档的某个字段(通常是
_id
字段)在集合中是唯一的。 - 存在性检查:确保文档中包含所有必需的字段。
- 自定义验证函数:可以编写自定义的 JavaScript 函数来执行更复杂的验证逻辑。
以下是一个使用 MongoDB 的 collMod
命令为集合添加验证规则的示例:
db.runCommand({ collMod: "myCollection", validator: { $jsonSchema: { bsonType: "object", required: ["name", "age"], properties: { name: { bsonType: "string", description: "Name must be a string and is required" }, age: { bsonType: "int", minimum: 0, maximum: 120, description: "Age must be an integer between 0 and 120" } } } }, validationLevel: "strict" })
在这个示例中,我们为名为 myCollection
的集合添加了一个验证规则,该规则要求文档必须包含 name
和 age
字段,其中 name
是一个字符串,age
是一个介于 0 到 120 之间的整数。validationLevel: "strict"
表示这个验证规则是严格模式,任何不满足条件的文档都将被拒绝插入或更新。