Introduction du chapitre
Dans ce chapitre, nous allons introduire les opérateurs de correspondance de champs de tableau dans les documents JSON de MongoDB.
Opérateurs de requête de tableau pris en charge par MongoDB
| Opérateur | Description |
|---|---|
| $all | Correspond à la valeur de tableau entière dans la condition de requête |
| $elemMatch | Pour les champs de tableau, si une valeur correspond à toutes les conditions définies par $elemMatch, la condition est remplie |
| $size | Correspond à la taille du tableau |
$all
{ tags: { $all: [ "ssl" , "security" ] } }
Équivalent à
{ $and: [ { tags: "ssl" }, { tags: "security" } ] }
Le champ tags est une valeur de tableau, et le tableau tags contient simultanément les valeurs ssl et security.
$elemMatch
Données de test
Les données de la collection scores sont comme suit:
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
Exemple:
db.scores.find(
{ results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)
Données renvoyées:
{ "_id" : 1, "results" : [ 82, 85, 88 ] }
Explication:
- Si une valeur dans le tableau
resultsest supérieure ou égale à 80 et inférieure à 85, le document est considéré comme correspondant avec succès.
$size
Correspond à la taille du tableau
db.collection.find( { field: { $size: 2 } } );
Explication:
- Le champ
fieldest une valeur de tableau, et si la taille du tableau est égale à 2, le document est considéré comme correspondant avec succès.