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.