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