Sommaire

Les opérateurs logiques

1. L’opérateur $and

C’est grâce à l’opérateur $and que ces deux documents vont pouvoir être joints. Sa syntaxe est :

{$and: [{critère1}, {critère2}, ...]}

Si nous réécrivons notre condition de filtre, nous obtenons :

{$and: [{"age": {$exists: 1}}, {"age": {$nin: [70, 80]}}]}

Nos critères se trouvent à présent énumérés dans un tableau auquel sera appliquée une succession de « ET » logiques. Nous pouvons désormais écrire la version finale de notre requête :

db.personnes.find({ 
 $and: [{ 
   "age": { 
     $exists: 1 
   } 
 }, { 
   "age": { 
     $nin: [70, 80] 
   } 
 }] 
}, { 
 "_id": 0, 
 "prenom": 1, 
 "nom": 1 
})

Dans le cas d’un simple ET comme celui que nous venons de réaliser, le mieux reste cependant de faire usage du ET implicite, en listant nos critères l’un derrière l’autre :

db.personnes.find({ 
 "age": { 
   $exists: 1, 
   $nin: [70, 80] 
 } 
}, { 
 "_id": 0, 
 "prenom": 1, 
 "nom": 1 
})

2. L’opérateur $or

L’opérateur ...