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: Больше и меньше

Следующий код показывает, как запросить все документы, значение которых в поле «points» больше 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: как искать «не ноль» в определенном поле

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *