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