溫馨提示×

MongoDB集合有何數(shù)據(jù)驗證規(guī)則

小樊
81
2024-11-01 03:07:37
欄目: 云計算

MongoDB 集合的數(shù)據(jù)驗證規(guī)則是通過 BSON 文檔驗證器來定義的。這些驗證規(guī)則可以確保插入或更新到集合中的文檔滿足特定的條件。你可以使用 collMod 命令來為現(xiàn)有集合添加、修改或刪除驗證規(guī)則。

以下是一些常見的 BSON 文檔驗證器規(guī)則:

  1. 類型檢查:確保文檔的字段具有預(yù)期的數(shù)據(jù)類型,例如字符串、數(shù)字、布爾值等。
  2. 范圍檢查:對于數(shù)值類型,可以指定最小值和最大值。
  3. 長度檢查:對于字符串類型,可以指定最小和最大長度。
  4. 模式匹配:使用正則表達式來匹配字符串字段的值。
  5. 唯一性檢查:確保文檔的某個字段(通常是 _id 字段)在集合中是唯一的。
  6. 存在性檢查:確保文檔中包含所有必需的字段。
  7. 自定義驗證函數(shù):可以編寫自定義的 JavaScript 函數(shù)來執(zhí)行更復(fù)雜的驗證邏輯。

以下是一個使用 MongoDB 的 collMod 命令為集合添加驗證規(guī)則的示例:

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"
})

在這個示例中,我們?yōu)槊麨?myCollection 的集合添加了一個驗證規(guī)則,該規(guī)則要求文檔必須包含 nameage 字段,其中 name 是一個字符串,age 是一個介于 0 到 120 之間的整數(shù)。validationLevel: "strict" 表示這個驗證規(guī)則是嚴格模式,任何不滿足條件的文檔都將被拒絕插入或更新。

0