MongoDB: как найти максимальное значение в коллекции


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

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