MongoDB : Comment interroger « non nul » ? dans un domaine spécifique
Vous pouvez utiliser la syntaxe suivante pour rechercher tous les documents pour lesquels un champ spécifique n’est pas nul dans MongoDB :
db.collection.find({"field_name":{$ne:null}})
Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.
Exemple 1 : requête pour « non nul » dans un champ spécifique
Supposons que nous ayons une équipe de collecte avec les documents suivants :
db.teams.insertOne({team: "Mavs", position: null, points: 31}) db.teams.insertOne({team: "Spurs", position: "Guard", points: 22}) db.teams.insertOne({team: "Rockets", position: null, points: 19}) db.teams.insertOne({team: "Warriors", position: "Forward", points: 26}) db.teams.insertOne({team: "Cavs", position: "Guard", points: 33})
On peut utiliser le code suivant pour retrouver tous les documents où le champ « position » n’est pas nul :
db.teams.find({"position":{$ne:null}})
Cette requête renvoie les documents suivants :
{ _id: ObjectId("618bf18f35d8a762d3c28717"), team: 'Spurs', position: 'Guard', points: 22 } { _id: ObjectId("618bf18f35d8a762d3c28719"), team: 'Warriors', position: 'Forward', points: 26 } { _id: ObjectId("618bf18f35d8a762d3c2871a"), team: 'Cavs', position: 'Guard', points: 33 }
Notez que les seuls documents renvoyés sont ceux dont le champ « position » n’est pas nul.
Exemple 2 : requête pour « not null » (lorsque tous les documents ne contiennent pas le champ)
Supposons que nous ayons une équipe de collecte avec les documents suivants :
db.teams.insertOne({team: "Mavs", position: null, points: 31}) db.teams.insertOne({team: "Spurs", points: 22}) db.teams.insertOne({team: "Rockets", position: null, points: 19}) db.teams.insertOne({team: "Warriors", position: "Forward", points: 26}) db.teams.insertOne({team: "Cavs", position: "Guard", points: 33})
Notez que le deuxième document de la collection n’a même pas de champ « position ».
On peut utiliser le code suivant pour retrouver tous les documents où le champ « position » n’est pas nul :
db.teams.find({"position":{$ne:null}})
Cette requête renvoie les documents suivants :
{ _id: ObjectId("618bf18f35d8a762d3c28719"), team: 'Warriors', position: 'Forward', points: 26 } { _id: ObjectId("618bf18f35d8a762d3c2871a"), team: 'Cavs', position: 'Guard', points: 33 }
Puisque le deuxième document n’a même pas de champ « position », il n’est pas renvoyé.
Notez également que les deux autres documents qui ont une valeur nulle dans le champ « position » ne sont pas non plus renvoyés.
Résumé : En utilisant la syntaxe $ne:null , nous renvoyons uniquement les documents pour lesquels un champ spécifique existe et n’est pas nul.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans MongoDB :
MongoDB : Comment interroger avec une expression régulière « Like »
MongoDB : Comment vérifier si le champ contient une chaîne
MongoDB : Comment ajouter un nouveau champ dans une collection
MongoDB : Comment supprimer un champ de chaque document