Heim >Web-Frontend >js-Tutorial >JSON -Schema -Validierung und ausdrucksstarke Abfrage -Syntax in MongoDB 3.6
Schlüsselverbesserungen an MongoDB 3.6: JSON -Schema -Überprüfung und effiziente Abfrage -Syntax
mongoDB 3.6 verbessert die Datenintegritäts- und Kontrollfunktionen durch die Einführung der JSON -Schema -Validierung erheblich. Im Vergleich zur vorherigen Überprüfung der Dokumente ist die Überprüfung des JSON -Schemas leistungsfähiger und flexibler, unterstützt erzwungene Muster innerhalb von Arrays und schränkt nicht autorisierte Eigenschaften ein.
Kernvorteile der JSON -Schemaüberprüfung:
$jsonSchema
-Preiber: Ermöglicht eine detaillierte Spezifikation von Eigenschaften wie Typen, den erforderlichen Status und zusätzliche Eigenschaften, um das Einfügen von Dokumenten von Tippfehler oder nicht autorisierten Eigenschaften zu verhindern. lineitems
-Array in einer Reihenfolge die erforderlichen Felder enthält und den angegebenen Datentypen und -beschränkungen entspricht. migrieren Sie von der Dokumentenüberprüfung zur Überprüfung des JSON -Schemas
Das folgende Beispiel zeigt, wie die Überprüfung der Dokumente auf JSON -Schema -Überprüfung aufgeregt wird:
Erstellen Sie zunächst eine orders
-Kollektion und überprüfen Sie die Konfiguration mit dem Dokument:
<code class="language-javascript">db.createCollection("orders", { validator: { item: { $type: "string" }, price: { $type: "decimal" } } });</code>
Dies stellt sicher, dass item
eine Zeichenfolge und price
eine Dezimalzahl ist. Es kann jedoch nicht verhindern, dass falsch geschriebene oder nicht autorisierte Attribute hinzugefügt werden.
Verwenden Sie den Operator $jsonSchema
, um dieses Problem zu lösen:
<code class="language-javascript">db.runCommand({ collMod: "orders", validator: { $jsonSchema: { bsonType: "object", required: ["item", "price"], properties: { item: { bsonType: "string" }, price: { bsonType: "decimal" } } } } });</code>
Die Sicherheit kann durch additionalProperties: false
weiter verbessert werden, um die Zugabe von undefinierten Eigenschaften zu verhindern.
Verarbeitung komplexer Datenstrukturen (z. B. lineitems
Arrays)
JSON -Schema -Validierung ermöglicht die Überprüfung komplexer Strukturen innerhalb eines Dokuments, z. Beispiele sind wie folgt: lineitems
<code class="language-javascript">// ... (省略部分代码,与原文类似) ... lineitems: { bsonType: ["array"], minItems: 1, maxItems: 10, items: { required: ["unit_price", "sku", "quantity"], bsonType: "object", additionalProperties: false, // ... (省略部分代码,与原文类似) ... } } // ... (省略部分代码,与原文类似) ...</code>
Verwenden Sie eine effiziente Abfrage -Syntax für komplexere Geschäftsregeln
Effiziente Abfrage -Syntax ermöglicht die Verwendung des -Operators, dynamische Überprüfungsregeln zu erstellen, z.
$expr
totalWithVAT
kombiniert total * (1 VAT)
und
<code class="language-javascript">$expr: { $eq: [ "$totalWithVAT", { $multiply: ["$total", { $sum: [1, "$VAT"] }] } ] }</code>
$jsonSchema
Zusammenfassung $expr
Das obige ist der detaillierte Inhalt vonJSON -Schema -Validierung und ausdrucksstarke Abfrage -Syntax in MongoDB 3.6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!