Mongodb: query's uitvoeren met de reguliere expressie "like".


U kunt de volgende methoden gebruiken om MongoDB te bevragen met een reguliere expressie „like“:

Methode 1: Vind documenten die een string bevatten

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

Houd er rekening mee dat de i een hoofdletterongevoelige overeenkomst aangeeft.

Methode 2: Vind documenten die beginnen met een string

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

Methode 3: Vind documenten die eindigen op een string

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

De volgende voorbeelden laten zien hoe u elke methode kunt gebruiken met een incassoteam met de volgende documenten:

 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 })

Voorbeeld 1: Zoeken naar documenten die een string bevatten

We kunnen de volgende code gebruiken om te zoeken naar alle documenten die de string „avs“ bevatten in het teamveld:

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

Deze query retourneert de volgende twee documenten:

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

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

Voorbeeld 2: Vind documenten die beginnen met een string

We kunnen de volgende code gebruiken om te zoeken naar alle documenten die beginnen met de string „gua“ in het positieveld:

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

Deze query retourneert de volgende drie documenten:

 { _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 }

Voorbeeld 3: Vind documenten die eindigen op een string

We kunnen de volgende code gebruiken om alle documenten te vinden die eindigen op de string „ward“ in het positieveld:

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

Deze query retourneert het volgende document:

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

Opmerking : u kunt de volledige documentatie voor $regex hier vinden.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert