Вы можете использовать следующие операторы в 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: как запросить «не нуль» в определенном поле