MongoDB : Comment vérifier si le champ contient une chaîne



Vous pouvez utiliser la syntaxe suivante dans MongoDB pour vérifier si un certain champ contient une chaîne spécifique :

db.collection.findOne({name: {$regex : /string/}})

Les exemples suivants montrent comment utiliser cette syntaxe avec une équipe de collection avec les documents suivants :

db.teams.insertOne({team: "Mavs", position: "Guard", points: 31})
db.teams.insertOne({team: "Spurs", position: "Guard", points: 22})
db.teams.insertOne({team: "Rockets", position: "Center", points: 19})
db.teams.insertOne({team: "Warriors", position: "Forward", points: 26})
db.teams.insertOne({team: "Cavs", position: "Guard", points: 33})

Exemple 1 : Vérifier si le champ contient une chaîne

Nous pouvons utiliser le code suivant pour vérifier s’il existe un document contenant la chaîne « avs » dans le champ équipe :

db.teams.findOne({team: {$regex : /avs/}}) 

Cette requête renvoie le document suivant :

{ _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

Notez que la fonction findOne() renvoie le premier document d’une collection qui satisfait aux critères de requête.

Cela signifie que d’autres équipes peuvent également avoir la chaîne « avs » dans leur nom d’équipe, mais le document contenant le nom d’équipe « Mavs » était simplement le premier.

Exemple 2 : Vérifier si le champ contient une chaîne (insensible à la casse)

Nous pouvons également utiliser un i après la chaîne pour effectuer une correspondance insensible à la casse .

Par exemple, supposons que nous utilisions la requête suivante :

db.teams.findOne({team: {$regex : /AVS/i}}) 

Cette requête renvoie également le document suivant :

{ _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

Exemple 3 : Vérifiez si le champ contient une chaîne (aucun résultat)

Si un champ ne contient pas la chaîne spécifique que nous recherchons, nous recevrons simplement null en conséquence.

Par exemple, supposons que nous utilisions la requête suivante :

db.teams.findOne({team: {$regex : /ricks/}}) 

Cette requête renvoie le résultat suivant :

null

Puisqu’aucun document ne contient la chaîne « ricks » dans le nom de l’équipe, nous recevons null en conséquence.

Remarque : Vous pouvez trouver la documentation complète pour $regex ici .

Ressources additionnelles

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

MongoDB : Comment rechercher « non nul » dans un champ spécifique
MongoDB : Comment interroger avec une expression régulière « Like »
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 *