Kapiteleinführung

In diesem Kapitel werden wir die Array-Feld-Matching-Operatoren in den JSON-Dokumenten von MongoDB vorstellen.

Array-Abfrageoperatoren, die von MongoDB unterstützt werden

Operator Beschreibung
$all Passt den gesamten Array-Wert in der Abfragebedingung an
$elemMatch Wenn für Felder im Array jeder Wert alle Bedingungen erfüllt, die durch $elemMatch festgelegt sind, ist die Bedingung erfüllt
$size Passt die Array-Größe an

$all

{ tags: { $all: [ "ssl" , "security" ] } }

Äquivalent zu

{ $and: [ { tags: "ssl" }, { tags: "security" } ] }

Das Feld tags ist ein Array-Wert, und das Array tags enthält gleichzeitig die Werte ssl und security.

$elemMatch

Testdaten

Die Datensammlung scores sieht wie folgt aus:

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }

Beispiel:

db.scores.find(
   { results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)

Returnierte Daten:

{ "_id" : 1, "results" : [ 82, 85, 88 ] }

Erklärung:

  • Wenn ein Wert im Array results größer oder gleich 80 und gleichzeitig kleiner als 85 ist, wird das Dokument erfolgreich abgeglichen.

$size

Passt die Array-Größe an

db.collection.find( { field: { $size: 2 } } );

Erklärung:

  • Das Feld field ist ein Array-Wert, und wenn die Array-Größe gleich 2 ist, wird das Dokument erfolgreich abgeglichen.