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

Ajouter un commentaire

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