Mongodb: jak używać wartości większych niż i mniejszych niż w zapytaniach
Do wykonywania zapytań w górę i w dół możesz używać następujących operatorów w MongoDB:
- $lt : Mniej niż
- $lte : Mniejszy lub równy
- $gt : Większe niż
- $gte : Większe lub równe
Poniższe metody pokazują typowe sposoby używania tych operatorów:
Metoda 1: Większa niż zapytanie
db.myCollection.find({field1: { $gt : 25 }})
Metoda 2: Mniej niż zapytanie
db.myCollection.find({field1: { $lt : 25 }})
Metoda 3: Zapytanie o wartość większą niż i mniejszą niż
db.myCollection.find({field1: { $gt : 25 , $lt : 32 }})
Metoda 4: Zapytanie o wartość większą lub mniejszą niż
db.myCollection.find({ " $or ": [ {" field1 ": { $gt : 30 }}, {" field1 ": { $lt : 20 }} ] })
Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce w przypadku zespołu windykacyjnego posiadającego następujące dokumenty:
db.teams.insertOne({team: " Mavs ", points: 31}) db.teams.insertOne({team: " Spurs ", points: 22}) db.teams.insertOne({team: " Rockets ", points: 19}) db.teams.insertOne({team: " Warriors ", points: 26}) db.teams.insertOne({team: " Cavs ", points: 33})
Przykład 1: zapytanie większe niż
Poniższy kod pokazuje jak przeszukać wszystkie dokumenty, których wartość w polu „punkty” jest większa niż 25:
db.teams.find({points: { $gt : 25 }})
To zapytanie zwraca następujące dokumenty:
{ _id: ObjectId("6203e4a91e95a9885e1e764f"), team: 'Mavs', points: 31 } { _id: ObjectId("6203e4a91e95a9885e1e7652"), team: 'Warriors', points: 26 } { _id: ObjectId("6203e4a91e95a9885e1e7653"), team: 'Cavs', points: 33 }
Należy pamiętać, że każdy z trzech dokumentów wyjściowych ma w polu „punkty” wartość większą niż 25.
Przykład 2: Zapytanie o mniej niż
Poniższy kod pokazuje jak przeszukać wszystkie dokumenty, których wartość w polu „punkty” jest mniejsza niż 25:
db.teams.find({points: { $lt : 25 }})
To zapytanie zwraca następujące dokumenty:
{ _id: ObjectId("6203e4a91e95a9885e1e7650"), team: 'Spurs', points: 22 } { _id: ObjectId("6203e4a91e95a9885e1e7651"), team: 'Rockets', points: 19 }
Należy pamiętać, że oba dokumenty wyjściowe mają wartość w polu „punkty” mniejszą niż 25.
Przykład 3: Większy niż i mniejszy niż
Poniższy kod pokazuje jak przeszukać wszystkie dokumenty, których wartość w polu „punkty” jest większa niż 25 i mniejsza niż 32:
db.teams.find({points: { $gt : 25 , $lt : 32 }})
To zapytanie zwraca następujące dokumenty:
{ _id: ObjectId("6203e4a91e95a9885e1e764f"), team: 'Mavs', points: 31 } { _id: ObjectId("6203e4a91e95a9885e1e7652"), team: 'Warriors', points: 26 }
Należy pamiętać, że oba dokumenty wyjściowe mają wartość w polu „punkty” większą niż 25 i mniejszą niż 32.
Przykład 4: Większy lub mniejszy niż
Poniższy kod pokazuje jak przeszukać wszystkie dokumenty, których wartość w polu „punkty” jest większa niż 30 lub mniejsza niż 20:
db.teams.find({ " $or ": [ {" points ": { $gt : 30 }}, {" points ": { $lt : 20 }} ] })
To zapytanie zwraca następujące dokumenty:
{ _id: ObjectId("6203e4a91e95a9885e1e764f"), team: 'Mavs', points: 31 } { _id: ObjectId("6203e4a91e95a9885e1e7651"), team: 'Rockets', points: 19 } { _id: ObjectId("6203e4a91e95a9885e1e7653"), team: 'Cavs', points: 33 }
Należy pamiętać, że każdy z dokumentów wyjściowych ma w polu „punkty” wartość większą niż 30 lub mniejszą niż 20.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w MongoDB:
MongoDB: Jak wysyłać zapytania z zakresem dat
MongoDB: Jak używać zapytania „NIE IN”.
MongoDB: Jak wyszukać „nie null” w określonym polu