Mongodb: hoe u de and ($and)-operator in query's gebruikt
U kunt de operator $and in MongoDB gebruiken om te zoeken naar documenten die aan meerdere criteria voldoen.
Deze operator gebruikt de volgende basissyntaxis:
db.myCollection.find({ " $and ": [ {" field1 ": " hello "}, {" field2 ": { $gte : 10 }} ] })
In dit specifieke voorbeeld wordt gezocht naar alle documenten in de verzameling met de naam myCollection , waarbij veld1 gelijk is aan ‚hallo‘ en veld2 een waarde groter dan of gelijk aan 10 heeft.
De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken met een incassoteam met de volgende documenten:
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})
Voorbeeld 1: Gebruik de AND-operator met twee velden
De volgende code laat zien hoe je alle documenten in de teamscollectie kunt vinden waarbij het veld ‚team‘ gelijk is aan ‚Spurs‘ en de waarde van het veld ‚punten‘ groter is dan of gelijk is aan 22:
db.teams.find({ " $and ": [ {" team ": " Spurs "}, {" points ": { $gte : 22 }} ] })
Deze query retourneert de volgende documenten:
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 } { _id: ObjectId("6201824afd435937399d6b6d"), team: 'Spurs', points: 23, rebounds: 9 }
Houd er rekening mee dat elk document in de uitvoer ‚Spurs‘ bevat in het teamveld en een waarde groter dan of gelijk aan 22 in het puntenveld.
Voorbeeld 2: Gebruik de AND-operator met meer dan twee velden
De volgende code laat zien hoe u alle documenten in de teamscollectie kunt vinden waarbij het veld „team“ niet gelijk is aan „Mavs“ en de waarde in het veld „punten“ groter is dan of gelijk is aan 22 en de waarde in het veld „rebounds » het veld is kleiner dan 7:
db.teams.find({ " $and ": [ {" team ": { $ne : " Mavs "}}, {" points ": { $gte : 22 }}, {" rebounds ": { $lt : 7 }} ] })
Deze query retourneert het volgende document:
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 }
Houd er rekening mee dat dit het enige document in de collectie is dat aan alle drie de criteria voldoet:
- Het veld “Team” is niet gelijk aan “ Mavs ”
- Het veld “punten” heeft een waarde groter dan of gelijk aan 22
- Het veld ‘rebounds’ heeft een waarde kleiner dan 7
Opmerking : u kunt de volledige documentatie voor de $and- functie hier vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in MongoDB kunt uitvoeren:
MongoDB: Hoe u kunt controleren of een veld een string bevat
MongoDB: Hoe een “NO IN” -query te gebruiken
MongoDB: zoeken naar „not null“ in een specifiek veld