Mongodb: so verwenden sie den and-operator ($and) in abfragen
Sie können den $and- Operator in MongoDB verwenden, um nach Dokumenten zu suchen, die mehreren Kriterien entsprechen.
Dieser Operator verwendet die folgende grundlegende Syntax:
db.myCollection.find({ " $and ": [ {" field1 ": " hello "}, {" field2 ": { $gte : 10 }} ] })
In diesem speziellen Beispiel wird nach allen Dokumenten in der Sammlung mit dem Namen „ myCollection “ gesucht, wobei Feld1 „Hallo“ entspricht und Feld2 einen Wert größer oder gleich 10 hat.
Die folgenden Beispiele zeigen, wie diese Syntax in der Praxis mit einem Inkassoteam mit den folgenden Dokumenten verwendet wird :
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 12}) db.teams.insertOne({team: " Spurs ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Spurs ", points: 23, rebounds: 9})
Beispiel 1: Verwenden Sie den AND-Operator mit zwei Feldern
Der folgende Code zeigt, wie alle Dokumente in der Teamsammlung gefunden werden, bei denen das Feld „Team“ gleich „Spurs“ und der Wert des Felds „Punkte“ größer oder gleich 22 ist:
db.teams.find({ " $and ": [ {" team ": " Spurs "}, {" points ": { $gte : 22 }} ] })
Diese Abfrage gibt die folgenden Dokumente zurück:
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 } { _id: ObjectId("6201824afd435937399d6b6d"), team: 'Spurs', points: 23, rebounds: 9 }
Beachten Sie, dass jedes Dokument in der Ausgabe „Spurs“ im Teamfeld und einen Wert größer oder gleich 22 im Punktefeld enthält.
Beispiel 2: Verwenden Sie den AND-Operator mit mehr als zwei Feldern
Der folgende Code zeigt, wie alle Dokumente in der Teams- Sammlung gefunden werden, bei denen das Feld „Team“ nicht gleich „Mavs“ ist und der Wert im Feld „Punkte“ größer oder gleich 22 ist und der Wert im Feld „Rebounds“ ist » Das Feld ist kleiner als 7:
db.teams.find({ " $and ": [ {" team ": { $ne : " Mavs "}}, {" points ": { $gte : 22 }}, {" rebounds ": { $lt : 7 }} ] })
Diese Abfrage gibt das folgende Dokument zurück:
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 }
Beachten Sie, dass dies das einzige Dokument in der Sammlung ist, das alle drei Kriterien erfüllt:
- Das Feld „Team“ ist nicht gleich „ Mavs “
- Das Feld „Punkte“ hat einen Wert größer oder gleich 22
- Das Feld „Rebounds“ hat einen Wert kleiner als 7
Hinweis : Die vollständige Dokumentation zur $and -Funktion 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 überprüfen Sie, ob das Feld eine Zeichenfolge enthält
MongoDB: So verwenden Sie eine „NO IN“-Abfrage
MongoDB: So suchen Sie in einem bestimmten Feld nach „nicht null“.