在MongoDB中,我們可以使用MongoDB的Schema驗證功能來對集合中的數(shù)據(jù)進行校驗。Schema驗證是一種在插入或更新文檔之前檢查文檔結(jié)構(gòu)的方法,以確保它們符合預期的格式和規(guī)則。以下是如何在MongoDB中設(shè)置和使用Schema驗證的步驟:
users
的集合,我們希望其中的文檔具有以下結(jié)構(gòu):{
"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驗證的數(shù)據(jù)庫。例如,如果您的數(shù)據(jù)庫名為myDatabase
,則運行以下命令:
use myDatabase;
createIndex
方法,并指定validator
選項。例如,為users
集合創(chuàng)建驗證器: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
設(shè)置為"strict"
,表示所有不符合驗證規(guī)則的文檔都將被拒絕。您可以根據(jù)需要將其更改為"moderate"
或"off"
。
現(xiàn)在,當您嘗試向users
集合插入或更新文檔時,MongoDB將使用指定的Schema驗證規(guī)則進行檢查。如果文檔不符合規(guī)則,操作將被拒絕,并返回一個錯誤消息。