Вы можете использовать следующие методы, чтобы найти максимальное значение поля в MongoDB:
Способ 1: вернуть документ, содержащий максимальное значение
db.teams.find().sort({" field ": -1 }).limit( 1 )
Этот фрагмент кода сортирует каждый документ в коллекции в порядке убывания на основе определенного поля, а затем возвращает только первый документ.
Способ 2: вернуть только максимальное значение
db.teams.find().sort({" field ": -1 }).limit( 1 ).toArray().map(function(u){ return u.field})
В следующих примерах показано, как использовать каждый метод с набором команд со следующими документами:
db.teams.insertOne({team: " Mavs", position: " Guard", points: 31 })
db.teams.insertOne({team: " Spurs", position: " Guard", points: 22 })
db.teams.insertOne({team: " Rockets", position: " Center", points: 19 })
db.teams.insertOne({team: " Warriors", position: " Forward", points: 26 })
db.teams.insertOne({team: " Cavs", position: " Guard", points: 33 })
Пример 1: возвращенный документ, содержащий максимальное значение
Мы можем использовать следующий код, чтобы вернуть документ, содержащий максимальное значение в поле «баллы»:
db.teams.find().sort({" points ": -1 }).limit( 1 )
Этот запрос возвращает следующий документ:
{ _id: ObjectId("618285361a42e92ac9ccd2c6"),
team: 'Cavs',
position: 'Guard',
points: 33 }
Этот документ возвращается, так как он содержит наибольшее значение (33) в поле «баллы» из всех документов.
Пример 2: вернуть только максимальное значение
Мы можем использовать следующий код, чтобы вернуть только максимальное значение в поле «баллы» из всех документов:
db.teams.find().sort({" points ": -1 }).limit( 1 ).toArray().map(function(u){ return u.points})
Этот запрос возвращает следующий результат:
[ 33 ]
Обратите внимание, что возвращается только само максимальное значение (33), а не весь документ, содержащий максимальное значение.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в MongoDB:
MongoDB: как группировать и считать
MongoDB: как сгруппировать по нескольким полям
MongoDB: как проверить, содержит ли поле строку