在MongoDB中,我们可以使用MongoDB的Schema验证功能来对集合中的数据进行校验。Schema验证是一种在插入或更新文档之前检查文档结构的方法,以确保它们符合预期的格式和规则。以下是如何在MongoDB中设置和使用Schema验证的步骤:
users
的集合,我们希望其中的文档具有以下结构:{
"name": {
"type": "string",
"required": true
},
"email": {
"type": "string",
"required": true,
"unique": true
},
"age": {
"type": "number",
"minimum": 18,
"maximum": 100
}
}
使用mongo
shell或MongoDB Compass等工具连接到MongoDB实例。
选择要应用Schema验证的数据库。例如,如果您的数据库名为myDatabase
,则运行以下命令:
use myDatabase;
createIndex
方法,并指定validator
选项。例如,为users
集合创建验证器:db.runCommand({
collMod: "users",
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name", "email", "age"],
properties: {
name: {
bsonType: "string",
description: "must be a string and is required"
},
email: {
bsonType: "string",
pattern: "^.+@.+\..+$",
description: "must be a string and is required and must be unique"
},
age: {
bsonType: "int",
minimum: 18,
maximum: 100,
description: "must be a number and is required"
}
}
}
},
validationLevel: "strict"
});
这里,validationLevel
设置为"strict"
,表示所有不符合验证规则的文档都将被拒绝。您可以根据需要将其更改为"moderate"
或"off"
。
现在,当您尝试向users
集合插入或更新文档时,MongoDB将使用指定的Schema验证规则进行检查。如果文档不符合规则,操作将被拒绝,并返回一个错误消息。