Definição
Retorna o valor mínimo em um grupo de documentos.
O acumulador $min está disponível nos seguintes estágios:
Observação
Desambiguação
Esta página descreve $min quando usado como acumulador. Os acumuladores retornam um valor agregado como soma, máximo ou mínimo em um grupo de documentos de entrada.
Você também pode usar $min nestes outros contextos:
$min (expression), que retorna o valor mínimo de uma array.$min (window function), que é usado no estágio$setWindowFieldspara retornar o valor mínimo de documentos em uma janela específica.
Sintaxe
{ $min: <expression> }
Comportamento
Tipo de resultado
Quando $min compara valores de tipos diferentes, ele usa a ordem de comparação BSON para determinar qual valor é menor.
Valores nulos ou ausentes
Se alguns documentos tiverem um valor null para o campo ou estiverem faltando o campo, $min os ignorará. Considera apenas os valores não nulos e não ausentes.
Se todos os documentos tiverem um valor null para o campo ou não tiverem o campo, $min retornará null.
Operando de array
No estágio $group, se a expressão se resolve em uma array, $min não atravessa a array. Ele compara a array como um todo.
Valores iguais
Se vários valores forem comparados como iguais, $min poderá retornar qualquer um desses valores. Não há garantias de qual valor igual $min retorna.
Por exemplo, em um agrupamento que não diferencia maiúsculas de minúsculas, "a" e "A" podem ser comparados como iguais. Não há garantias de qual será retornado.
Exemplo
Os exemplos nesta página usam dados do conjunto de dados sample_mflix. Para obter detalhes sobre como carregar esse conjunto de dados em sua implantação autogerenciada do MongoDB , consulte Carregar o conjunto de dados de amostra. Se você fez modificações nos bancos de dados de amostra, talvez seja necessário descartar e recriar os bancos de dados para executar os exemplos nesta página.
Use $min em um estágio $group
O exemplo a seguir agrupa filmes por classificação da MPAA e retorna a classificação mais baixa do IMDb para cada grupo.
db.movies.aggregate( [ { $match: { rated: { $in: [ "G", "PG", "PG-13", "R" ] }, "imdb.rating": { $type: "double" } } }, { $group: { _id: "$rated", lowestRating: { $min: "$imdb.rating" } } }, { $sort: { _id: 1 } } ] )
O pipeline anterior:
Usa
$matchpara filtrar filmes com um valorrateddeG,PG,PG-13ouRe uma classificação numérica do IMDb.Utiliza
$grouppara agrupar filmes pelo camporatede calculalowestRatingutilizando$minemimdb.rating.Utiliza
$sortpara devolver os resultados em ordem alfabética por classificação de conteúdo.