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.