Definição
Retorna o número especificado de elementos desde o início de uma array.
Observação
Desambiguação
Esta página descreve $firstN quando usado como uma expressão, que retorna o número especificado de elementos desde o início de uma array.
Você também pode usar $firstN nestes outros contextos:
$firstN (accumulator), usado no agrupamento para retornar os primeiros elementosnde cada grupo.$firstN (window function), que é usado no estágio$setWindowFieldspara retornar os primeiros valoresnde documentos em uma janela específica.
Sintaxe
{ $firstN: { input: <expression>, n: <expression> } }
Opções
Campo | Tipo | Descrição |
|---|---|---|
| Expressão | A array a partir da qual retornar os primeiros elementos |
| Expressão | O número de elementos que |
Comportamento
$firstNretorna elementos na mesma ordem em que aparecem na array de entrada.$firstNnão filtra valoresnullna array de entrada.Você não pode especificar um valor de
nmenor que1.Se o
nespecificado for maior ou igual ao número de elementos na arrayinput,$firstNretornará a arrayinputinteira.Se
inputresolver para um valor que não seja da array, a operação de agregação será executada.
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 $firstN para retornar os três primeiros membros do elenco de cada filme. Os membros do elenco são retornados no novo campo firstThreeCast criado por $addFields.
db.movies.aggregate( [ { $match: { title: { $in: [ "The Godfather", "Spirited Away", "The Dark Knight" ] } } }, { $addFields: { firstThreeCast: { $firstN: { input: "$cast", n: 3 } } } }, { $project: { _id: 0, title: 1, cast: 1, firstThreeCast: 1 } }, { $sort: { title: 1 } } ] )
O pipeline anterior:
Utiliza
$matchpara filtrar três filmes específicos.Usa
$addFieldscom$firstNpara criar um novo campofirstThreeCastcontendo os três primeiros elementos da arraycastcomn: 3.Usa
$projectpara incluir somente os campostitle,castefirstThreeCastno resultado.Utiliza
$sortpara classificar os resultados por título.