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
results
jest 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
field
jest wartością tablicową, i jeśli rozmiar tablicy jest równy 2, dokument jest pomyślnie dopasowany.