MongoDB : Comment utiliser « Pas égal » dans les requêtes



Vous pouvez utiliser l’opérateur $ne (qui signifie « pas égal ») dans MongoDB pour rechercher des documents dans lesquels un champ n’est pas égal à une certaine valeur.

Cet opérateur utilise la syntaxe de base suivante :

db.myCollection.find({'team': {$ne : "Mavs"}})

Cet exemple particulier recherche tous les documents de la collection intitulée myCollection où le champ d’équipe n’est pas égal à « Mavs ».

Vous pouvez également utiliser l’opérateur $nin (qui signifie « pas dans ») pour rechercher des documents dans lesquels un champ n’est égal à aucune valeur d’une liste.

Cet opérateur utilise la syntaxe de base suivante :

db.myCollection.find({'team': {$nin : ["Mavs", "Cavs", "Spurs"]}})

Cet exemple particulier recherche tous les documents de la collection intitulée myCollection où le champ d’équipe n’est pas égal à « Mavs », « Cavs » ou « Spurs ».

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec une équipe de collecte avec les documents suivants :

db.teams.insertOne({team: "Mavs", points: 30, rebounds: 8})
db.teams.insertOne({team: "Spurs", points: 35, rebounds: 12})
db.teams.insertOne({team: "Rockets", points: 20, rebounds: 7})
db.teams.insertOne({team: "Warriors", points: 25, rebounds: 5})
db.teams.insertOne({team: "Cavs", points: 23, rebounds: 9})

Exemple 1 : requête « Différent »

Le code suivant montre comment trouver tous les documents de la collection teams où le champ « team » n’est pas égal à « Mavs » :

db.teams.find({'team': {$ne : "Mavs"}})

Cette requête renvoie les documents suivants :

{ _id: ObjectId("6203ec0e1e95a9885e1e7658"),
  team: 'Cavs',
  points: 23,
  rebounds: 9 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7656"),
  team: 'Rockets',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7655"),
  team: 'Spurs',
  points: 35,
  rebounds: 12 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7657"),
  team: 'Warriors',
  points: 25,
  rebounds: 5 } 

Notez que chaque document de la collection teams est renvoyé là où le champ team n’est pas égal à « Mavs ».

Remarque : L’opérateur $ne est sensible à la casse.

Exemple 2 : requête « Pas dans »

Le code suivant montre comment trouver tous les documents de la collection teams où le champ team n’est pas égal à « Mavs », « Cavs » ou « Spurs » :

db.teams.find({'team': {$nin : ["Mavs", "Cavs", "Spurs"]}})

Cette requête renvoie les documents suivants :

{ _id: ObjectId("6203ec0e1e95a9885e1e7656"),
  team: 'Rockets',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7657"),
  team: 'Warriors',
  points: 25,
  rebounds: 5 } 

Notez que chaque document de la collection teams est renvoyé lorsque le champ team n’est pas égal à « Mavs », « Cavs » ou « Spurs ».

Note #1 : Vous pouvez trouver la documentation complète de la fonction $ne ici .

Note #2 : Vous pouvez trouver la documentation complète de la fonction $nin ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans MongoDB :

MongoDB : Comment vérifier si le champ contient une chaîne
MongoDB : Comment rechercher « non nul » dans un champ spécifique
MongoDB : Comment remplacer des chaînes

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *