Heim >Web-Frontend >js-Tutorial >JSON -Schema -Validierung und ausdrucksstarke Abfrage -Syntax in MongoDB 3.6

JSON -Schema -Validierung und ausdrucksstarke Abfrage -Syntax in MongoDB 3.6

William Shakespeare
William ShakespeareOriginal
2025-02-15 12:52:11550Durchsuche

JSON Schema Validation & Expressive Query 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:

  • Verwenden Sie den $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.
  • unterstützt komplexe Strukturen: Sie können beispielsweise sicherstellen, dass das lineitems -Array in einer Reihenfolge die erforderlichen Felder enthält und den angegebenen Datentypen und -beschränkungen entspricht.
  • Kombiniert mit einer effizienten Abfrage -Syntax: Übertragen Sie eine große Menge an Geschäftslogik aus der Anwendungsschicht in die Datenbankschicht, vereinfachen Sie die Codebasis und reduzieren Sie Fehler und Inkonsistenzen in der Datenverarbeitung. Die effiziente Abfrage -Syntax führt die leistungsstarken Funktionen aggregierter Ausdrücke in die Abfragesprache ein und sorgt für komplexe Geschäftsüberprüfungsregeln und dynamische Dateninspektionen an.

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

können komplexe Geschäftslogikregeln in die Datenbankverifizierung integriert werden, um die Datengenauigkeit und -konsistenz zu verbessern.
<code class="language-javascript">$expr: {
    $eq: [
        "$totalWithVAT",
        { $multiply: ["$total", { $sum: [1, "$VAT"] }] }
    ]
}</code>

$jsonSchema Zusammenfassung $expr

Die JSON -Schema -Überprüfung und die effiziente Abfrage -Syntax von MongoDB 3.6 bieten Entwicklern stärkere Datenintegritäts- und Steuerfunktionen, während die Anwendungscode vereinfacht, Fehler reduziert und die Datenverarbeitungseffizienz verbessert werden. Dies macht MongoDB besser für die Behandlung großer, komplexer Anwendungen und Daten geeignet.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn