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: как проверить, содержит ли поле строку

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

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