Mongodb: so fragen sie mit dem regulären ausdruck „gefällt mir“ ab


Sie können die folgenden Methoden verwenden, um MongoDB mit einem „like“ regulären Ausdruck abzufragen:

Methode 1: Suchen Sie nach Dokumenten, die eine Zeichenfolge enthalten

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

Beachten Sie, dass das i auf eine Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung hinweist.

Methode 2: Suchen Sie nach Dokumenten, die mit einer Zeichenfolge beginnen

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

Methode 3: Suchen Sie nach Dokumenten, die mit einer Zeichenfolge enden

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

Die folgenden Beispiele zeigen, wie die einzelnen Methoden mit einem Inkassoteam mit den folgenden Dokumenten verwendet werden:

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

Beispiel 1: Suche nach Dokumenten, die eine Zeichenfolge enthalten

Mit dem folgenden Code können wir nach allen Dokumenten suchen, die die Zeichenfolge „avs“ im Teamfeld enthalten:

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

Diese Abfrage gibt die folgenden zwei Dokumente zurück:

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

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

Beispiel 2: Suchen Sie nach Dokumenten, die mit einer Zeichenfolge beginnen

Mit dem folgenden Code können wir nach allen Dokumenten suchen, die mit der Zeichenfolge „gua“ im Positionsfeld beginnen:

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

Diese Abfrage gibt die folgenden drei Dokumente zurück:

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

Beispiel 3: Dokumente finden, die mit einer Zeichenfolge enden

Mit dem folgenden Code können wir alle Dokumente finden, die im Positionsfeld mit der Zeichenfolge „ward“ enden:

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

Diese Abfrage gibt das folgende Dokument zurück:

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

Hinweis : Die vollständige Dokumentation für $regex finden Sie hier .

Einen Kommentar hinzufügen

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