Mongodb: jak znaleźć maksymalną wartość w kolekcji


Aby znaleźć maksymalną wartość pola w MongoDB, możesz użyć następujących metod:

Metoda 1: Zwróć dokument zawierający maksymalną wartość

 db.teams.find().sort({" field ": -1 }).limit( 1 )

Ten fragment kodu sortuje wszystkie dokumenty w kolekcji w kolejności malejącej na podstawie określonego pola, a następnie zwraca tylko pierwszy dokument.

Metoda 2: Zwróć tylko wartość maksymalną

 db.teams.find().sort({" field ": -1 }).limit( 1 ).toArray().map(function(u){ return u.field})

Poniższe przykłady pokazują, jak używać każdej metody w przypadku zespołu zbierającego z następującymi dokumentami:

 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 })

Przykład 1: Zwróć dokument zawierający maksymalną wartość

Za pomocą poniższego kodu możemy zwrócić dokument zawierający maksymalną wartość w polu „punkty”:

 db.teams.find().sort({" points ": -1 }).limit( 1 ) 

To zapytanie zwraca następujący dokument:

 { _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

Dokument ten zostaje zwrócony, ponieważ zawiera najwyższą wartość (33) w polu „punkty” spośród wszystkich dokumentów.

Przykład 2: Zwróć tylko wartość maksymalną

Możemy użyć poniższego kodu, aby zwrócić tylko maksymalną wartość w polu „punkty” na wszystkich dokumentach:

 db.teams.find().sort({" points ": -1 }).limit( 1 ).toArray().map(function(u){ return u.points})

To zapytanie zwraca następujący wynik:

 [33]

Należy zauważyć, że zwracana jest tylko sama wartość maksymalna (33), a nie cały dokument zawierający wartość maksymalną.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w MongoDB:

MongoDB: Jak grupować i liczyć
MongoDB: Jak grupować według wielu pól
MongoDB: Jak sprawdzić, czy pole zawiera ciąg znaków

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *