Mongodb: so überprüfen sie, ob das feld eine zeichenfolge enthält


Sie können in MongoDB die folgende Syntax verwenden, um zu überprüfen, ob ein bestimmtes Feld eine bestimmte Zeichenfolge enthält:

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

Die folgenden Beispiele zeigen, wie diese Syntax mit einem Inkassoteam mit den folgenden Dokumenten verwendet wird:

 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: Überprüfen Sie, ob das Feld eine Zeichenfolge enthält

Mit dem folgenden Code können wir prüfen, ob im Teamfeld ein Dokument vorhanden ist, das die Zeichenfolge „avs“ enthält:

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

Diese Abfrage gibt das folgende Dokument zurück:

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

Beachten Sie, dass die Funktion findOne() das erste Dokument in einer Sammlung zurückgibt, das die Abfragekriterien erfüllt.

Dies bedeutet, dass andere Teams möglicherweise auch die Zeichenfolge „avs“ in ihrem Teamnamen haben, das Dokument mit dem Teamnamen „Mavs“ jedoch einfach das erste war.

Beispiel 2: Überprüfen Sie, ob das Feld eine Zeichenfolge enthält (Groß- und Kleinschreibung wird nicht beachtet)

Wir können auch ein i nach der Zeichenfolge verwenden, um eine Übereinstimmung ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen.

Angenommen, wir verwenden die folgende Abfrage:

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

Diese Abfrage gibt außerdem das folgende Dokument zurück:

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

Beispiel 3: Prüfen, ob das Feld eine Zeichenfolge enthält (keine Ergebnisse)

Wenn ein Feld nicht die spezifische Zeichenfolge enthält, nach der wir suchen, erhalten wir entsprechend einfach null .

Angenommen, wir verwenden die folgende Abfrage:

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

Diese Abfrage gibt das folgende Ergebnis zurück:

 null

Da kein Dokument die Zeichenfolge „ricks“ im Teamnamen enthält, erhalten wir als Ergebnis null .

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

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere gängige Vorgänge in MongoDB ausführen:

MongoDB: So suchen Sie in einem bestimmten Feld nach „nicht null“.
MongoDB: So fragen Sie mit einem regulären Ausdruck „Gefällt mir“ ab
MongoDB: So fügen Sie einer Sammlung ein neues Feld hinzu
MongoDB: So entfernen Sie ein Feld aus jedem Dokument

Einen Kommentar hinzufügen

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