Introduzione al Capitolo

In questo capitolo, presenteremo gli operatori di corrispondenza dei campi di array nei documenti JSON di MongoDB.

Operatori di Query dell'Array Supportati da MongoDB

Operatore Descrizione
$all Corrisponde al valore dell'intero array nella condizione della query
$elemMatch Per i campi dell'array, se un qualsiasi valore corrisponde a tutte le condizioni impostate da $elemMatch, la condizione è soddisfatta
$size Corrisponde alla dimensione dell'array

$all

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

Equivalente a

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

Il campo tags è un valore di array, e contemporaneamente contiene i valori ssl e security.

$elemMatch

Dati di Test

I dati della collezione scores sono i seguenti:

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

Esempio:

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

Dati Restituiti:

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

Spiegazione:

  • Se un qualsiasi valore nell'array results è maggiore o uguale a 80 e minore di 85, il documento è corrisposto con successo.

$size

Corrisponde alla dimensione dell'array

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

Spiegazione:

  • Il campo field è un valore di array, e se la dimensione dell'array è uguale a 2, il documento è corrisposto con successo.