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.