Mongodb: como encontrar o valor máximo em uma coleção


Você pode usar os seguintes métodos para encontrar o valor máximo de um campo no MongoDB:

Método 1: Retornar um documento contendo o valor máximo

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

Este trecho de código classifica todos os documentos da coleção em ordem decrescente com base em um campo específico e retorna apenas o primeiro documento.

Método 2: Retorne apenas o valor máximo

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

Os exemplos a seguir mostram como usar cada método com uma equipe de coleta com os seguintes documentos:

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

Exemplo 1: Retornar um documento contendo um valor máximo

Podemos utilizar o seguinte código para retornar o documento que contém o valor máximo no campo “pontos”:

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

Esta consulta retorna o seguinte documento:

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

Este documento é retornado porque contém o maior valor (33) no campo “pontos” entre todos os documentos.

Exemplo 2: Retorne apenas o valor máximo

Podemos usar o seguinte código para retornar apenas o valor máximo no campo “pontos” em todos os documentos:

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

Esta consulta retorna o seguinte resultado:

 [33]

Observe que apenas o próprio valor máximo (33) é retornado em vez de todo o documento contendo o valor máximo.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns no MongoDB:

MongoDB: Como agrupar e contar
MongoDB: Como agrupar por vários campos
MongoDB: Como verificar se o campo contém uma string

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *