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: як перевірити, чи поле містить рядок

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *