本文使用$ JSONSCHEMA驗證器來說明MongoDB的架構驗證以執行數據完整性。它詳細說明瞭如何定義JSON模式指定數據類型,約束(例如,最小/最大)和所需字段。模式DE的最佳實踐
MongoDB的模式驗證使您可以為文檔的結構和內容定義規則,從而確保數據完整性和一致性。這是通過createCollection
或collMod
命令中的$jsonSchema
驗證器來實現的。 $jsonSchema
驗證器使用JSON模式文檔來指定文檔的所需字段,數據類型和約束。
例如,假設您正在存儲有關用戶的信息。您要確保每個用戶文檔具有一個firstName
(字符串), lastName
(string)和一個age
(整數),並且年齡在0到120之間。您將定義這樣的JSON模式:
<code class="json">{ "bsonType": "object", "properties": { "firstName": { "bsonType": "string", "description": "must be a string and is required" }, "lastName": { "bsonType": "string", "description": "must be a string and is required" }, "age": { "bsonType": "int", "minimum": 0, "maximum": 120, "description": "must be an integer between 0 and 120" } }, "required": [ "firstName", "lastName", "age" ] }</code>
該模式指定該文檔必須是一個對象,並且定義了所需的字段及其數據類型。 required
數組確保每個文檔中都存在firstName
, lastName
和age
。 minimum
和maximum
屬性限制了age
領域。然後,您使用createCollection
或collMod
命令使用validator
選項創建或修改集合時應用此架構。任何違反這些規則的文件都將被MongoDB拒絕。這樣可以防止無效的數據輸入數據庫,從而維護數據完整性。
設計有效的MongoDB模式使用驗證需要仔細考慮您的數據模型和潛在用例。以下是一些最佳實踐:
required
陣列。minimum
, maximum
, minLength
,最大, maxLength
, pattern
(用於正則表達式)和enum
來強制執行數據限制。當文檔失敗架構驗證時,MongoDB將拒絕插入或更新操作。您的應用需要優雅處理這些錯誤。特定方法取決於您的驅動程序和編程語言。通常,您會收到一條錯誤消息,指示驗證失敗及其原因。
try...catch
塊(或等效)以捕獲驗證錯誤。不,MongoDB的內置模式驗證並不直接支持自定義驗證功能。 $jsonSchema
驗證器依賴於預定義的JSON模式關鍵字和數據類型。但是,您可以通過其他方式實現類似的功能:
$jsonSchema
驗證器插入/更新期間執行自定義驗證,但您可以執行後處理檢查和審核以識別不一致之處。這可能涉及查詢數據庫並檢查數據以符合自定義規則。然後,您可以標記這些不一致之處,以進行審查或更正。請記住,應用程序級驗證對於魯棒數據完整性至關重要。儘管MongoDB的架構驗證提供了第一道防線,但不應完全依靠它來滿足複雜的驗證需求。
以上是如何使用MongoDB的架構驗證來執行數據完整性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!