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» у певному полі