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. Больше, чем запрос

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

Обратите внимание, что каждый из трех документов в выходных данных имеет значение в поле «points» больше 25.

Пример 2: меньше, чем запрос

В следующем коде показано, как запросить все документы, в которых значение в поле «баллы» меньше 25:

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

Этот запрос возвращает следующие документы:

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

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

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.