MongoDB : Comment interroger avec « Like » Expression régulière



Vous pouvez utiliser les méthodes suivantes pour effectuer une requête dans MongoDB avec une expression régulière « like » :

Méthode 1 : rechercher des documents contenant une chaîne

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

Notez que le i indique une correspondance insensible à la casse.

Méthode 2 : rechercher des documents commençant par une chaîne

db.collection.find({name: {$regex : /^string/i}}) 

Méthode 3 : rechercher des documents se terminant par une chaîne

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

Les exemples suivants montrent comment utiliser chaque méthode avec une équipe de collecte 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 : rechercher des documents contenant une chaîne

Nous pouvons utiliser le code suivant pour rechercher tous les documents contenant la chaîne « avs » dans le champ équipe :

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

Cette requête renvoie les deux documents suivants :

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

{ _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

Exemple 2 : rechercher des documents commençant par une chaîne

Nous pouvons utiliser le code suivant pour rechercher tous les documents commençant par la chaîne « gua » dans le champ de position :

db.teams.find({position: {$regex : /^gua/i}})

Cette requête renvoie les trois documents suivants :

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

{ _id: ObjectId("6180504e8ffcfe76d07b1da7"),
  team: 'Spurs',
  position: 'Guard',
  points: 22 }

{ _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

Exemple 3 : rechercher des documents se terminant par une chaîne

Nous pouvons utiliser le code suivant pour rechercher tous les documents qui se terminent par la chaîne « ward » dans le champ de position :

db.teams.find({position: {$regex : /ward$/i}})

Cette requête renvoie le document suivant :

{ _id: ObjectId("618050808ffcfe76d07b1dab"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

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

Ajouter un commentaire

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