溫馨提示×

MongoDB集合怎樣進行數(shù)據(jù)校驗

小樊
81
2024-11-01 03:32:39
欄目: 云計算

在MongoDB中,我們可以使用MongoDB的Schema驗證功能來對集合中的數(shù)據(jù)進行校驗。Schema驗證是一種在插入或更新文檔之前檢查文檔結(jié)構(gòu)的方法,以確保它們符合預期的格式和規(guī)則。以下是如何在MongoDB中設(shè)置和使用Schema驗證的步驟:

  1. 創(chuàng)建一個JSON Schema文件,定義您希望集合中的文檔遵循的結(jié)構(gòu)和規(guī)則。例如,假設(shè)我們有一個名為users的集合,我們希望其中的文檔具有以下結(jié)構(gòu):
{
  "name": {
    "type": "string",
    "required": true
  },
  "email": {
    "type": "string",
    "required": true,
    "unique": true
  },
  "age": {
    "type": "number",
    "minimum": 18,
    "maximum": 100
  }
}
  1. 使用mongo shell或MongoDB Compass等工具連接到MongoDB實例。

  2. 選擇要應用Schema驗證的數(shù)據(jù)庫。例如,如果您的數(shù)據(jù)庫名為myDatabase,則運行以下命令:

use myDatabase;
  1. 在集合上創(chuàng)建一個驗證器。將上述JSON Schema作為參數(shù)傳遞給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ī)則,操作將被拒絕,并返回一個錯誤消息。

0