Mongodb: як використовувати більше та менше ніж у запитах


Ви можете використовувати наступні оператори в MongoDB для запиту вгору або вниз:

  • $lt : Менше ніж
  • $lte : Менше або дорівнює
  • $gt : більше ніж
  • $gte : більше або дорівнює

Наведені нижче методи показують поширені способи використання цих операторів:

Спосіб 1: більше, ніж запит

 db.myCollection.find({field1: { $gt : 25 }})

Спосіб 2: менше, ніж запит

 db.myCollection.find({field1: { $lt : 25 }})

Спосіб 3. Запит більше та менше

 db.myCollection.find({field1: { $gt : 25 , $lt : 32 }})

Спосіб 4. Запит більше або менше

 db.myCollection.find({ " $or ": [ {" field1 ": { $gt : 30 }}, {" field1 ": { $lt : 20 }} ] })

Наведені нижче приклади показують, як використовувати кожен метод на практиці з групою збору з такими документами:

 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})

Приклад 1: запит більше ніж

Наступний код показує, як запитувати всі документи, значення яких у полі «points» перевищує 25:

 db.teams.find({points: { $gt : 25 }})

Цей запит повертає такі документи:

 { _id: ObjectId("6203e4a91e95a9885e1e764f"),
  team: 'Mavs',
  points: 31 }
{ _id: ObjectId("6203e4a91e95a9885e1e7652"),
  team: 'Warriors',
  points: 26 }
{ _id: ObjectId("6203e4a91e95a9885e1e7653"),
  team: 'Cavs',
  points: 33 }

Зауважте, що кожен із трьох вихідних документів має значення в полі «балів» більше 25.

Приклад 2: Запит менше ніж

У наведеному нижче коді показано, як запитувати всі документи, значення яких у полі «points» менше 25:

 db.teams.find({points: { $lt : 25 }})

Цей запит повертає такі документи:

 { _id: ObjectId("6203e4a91e95a9885e1e7650"),
  team: 'Spurs',
  points: 22 }
{ _id: ObjectId("6203e4a91e95a9885e1e7651"),
  team: 'Rockets',
  points: 19 }

Зауважте, що обидва вихідні документи мають значення в полі «балів» менше 25.

Приклад 3: більше і менше

У наведеному нижче коді показано, як запитувати всі документи, значення яких у полі «балів» перевищує 25 і менше 32:

 db.teams.find({points: { $gt : 25 , $lt : 32 }})

Цей запит повертає такі документи:

 { _id: ObjectId("6203e4a91e95a9885e1e764f"),
  team: 'Mavs',
  points: 31 }
{ _id: ObjectId("6203e4a91e95a9885e1e7652"),
  team: 'Warriors',
  points: 26 }

Зауважте, що обидва вихідні документи мають значення в полі «балів» більше 25 і менше 32.

Приклад 4: більше або менше

У наведеному нижче коді показано, як запитувати всі документи, значення яких у полі «балів» перевищує 30 або менше 20:

 db.teams.find({ " $or ": [ {" points ": { $gt : 30 }}, {" points ": { $lt : 20 }} ] })

Цей запит повертає такі документи:

 { _id: ObjectId("6203e4a91e95a9885e1e764f"),
  team: 'Mavs',
  points: 31 }
{ _id: ObjectId("6203e4a91e95a9885e1e7651"),
  team: 'Rockets',
  points: 19 }
{ _id: ObjectId("6203e4a91e95a9885e1e7653"),
  team: 'Cavs',
  points: 33 }

Зауважте, що кожен із вихідних документів має значення в полі «балів» більше 30 або менше 20.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в MongoDB:

MongoDB: як робити запит із діапазоном дат
MongoDB: як використовувати запит «NO IN».
MongoDB: як шукати «not null» у певному полі

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *