Definição
Retorna os menores valores de n em uma array.
Observação
Desambiguação
Esta página descreve $minN quando usado como uma expressão, que retorna os valores mínimos de n em uma array.
Você também pode usar $minN nestes outros contextos:
$minN (accumulator), que retorna um valor agregado com base em um número variável de documentos de entrada.$minN (window function), que é usado no estágio$setWindowFieldspara retornar os valores mínimosnde documentos em uma janela específica.
Sintaxe
{ $minN: { n: <expression>, input: <expression> } }
Comportamento
Você não pode especificar um valor de
nmenor que1.$minNfiltra valoresnullencontrados na arrayinput.Se o
nespecificado for maior ou igual ao número de elementos na arrayinput,$minNretornará todos os elementos na arrayinput.Se
inputse resolver em um valor que não seja de array, a expressão produzirá um erro.Se
inputcontiver elementos de tipos diferentes, as comparações entre tipos seguirão a ordem de comparação BSON.
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.
O exemplo a seguir usa o operador $minN para retornar os dois primeiros gêneros alfabeticamente para cada filme. Os resultados são retornados no novo campo firstAlphabeticalGenres criado por $addFields.
db.movies.aggregate( [ { $match: { $expr: { $gte: [ { $size: "$genres" }, 3 ] } } }, { $addFields: { firstAlphabeticalGenres: { $minN: { n: 2, input: "$genres" } } } }, { $project: { _id: 0, title: 1, genres: 1, firstAlphabeticalGenres: 1 } }, { $limit: 5 } ] )
O pipeline anterior:
Usa
$matchpara filtrar filmes que tenham pelo menos três gêneros.Utiliza
$addFieldspara criar um campofirstAlphabeticalGenres.$minNcomn: 2retorna os dois primeiros valores alfabeticamente da arraygenres.Utiliza
$projectpara retornar somente os campostitle,genresefirstAlphabeticalGenres.Usa
$limitpara retornar cinco documentos para melhorar a legibilidade.