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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *