Wprowadzenie
W tym rozdziale przedstawimy operatory dopasowania pól tablicowych w dokumentach JSON w MongoDB.
Operatory zapytań tablic obsługiwane przez MongoDB
| Operator | Opis |
|---|---|
| $all | Dopasowuje całą wartość tablicy w warunku zapytania |
| $elemMatch | Dla pól tablicowych, jeśli jakakolwiek wartość spełnia wszystkie warunki ustawione przez $elemMatch, to warunek jest spełniony |
| $size | Dopasowuje rozmiar tablicy |
$all
{ tags: { $all: [ "ssl" , "security" ] } }
Równoważne z
{ $and: [ { tags: "ssl" }, { tags: "security" } ] }
Pole tags jest wartością tablicową, a tablica tags jednocześnie zawiera wartości ssl i security.
$elemMatch
Dane testowe
Dane kolekcji scores wyglądają następująco:
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
Przykład:
db.scores.find(
{ results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)
Zwrócone dane:
{ "_id" : 1, "results" : [ 82, 85, 88 ] }
Wyjaśnienie:
- Jeśli jakakolwiek wartość w tablicy
resultsjest większa lub równa 80 i mniejsza niż 85, dokument jest pomyślnie dopasowany.
$size
Dopasowuje rozmiar tablicy
db.collection.find( { field: { $size: 2 } } );
Wyjaśnienie:
- Pole
fieldjest wartością tablicową, i jeśli rozmiar tablicy jest równy 2, dokument jest pomyślnie dopasowany.