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 results est 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 field est une valeur de tableau, et si la taille du tableau est égale à 2, le document est considéré comme correspondant avec succès.