Definição
Retorna o número especificado de elementos do final de uma matriz.
Observação
Desambiguação
Esta página descreve $lastN quando usado como uma expressão, que retorna o número especificado de elementos do final de uma array.
Você também pode usar $lastN nestes outros contextos:
$lastN (accumulator), utilizado no agrupamento para retornar os últimos elementosnde cada grupo.$lastN (window function), que é usado no estágio$setWindowFieldspara retornar os últimos valoresnde documentos em uma janela específica.
Sintaxe
{ $lastN: { input: <expression>, n: <expression> } }
Opções
Campo | Tipo | Descrição |
|---|---|---|
| Expressão | A array a partir da qual retornar os últimos elementos |
| Expressão | O número de elementos que |
Comportamento
$lastNretorna elementos na mesma ordem em que aparecem na array de entrada.$lastNnã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,$lastNretornará a arrayinputinteira.Se
inputse resolver em um valor que não seja de array, haverá erros de expressão .
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 $lastN para retornar os últimos três membros do elenco para cada filme. Os membros do elenco são retornados no novo campo lastThreeCast criado por $addFields.
db.movies.aggregate( [ { $match: { title: { $in: [ "The Godfather", "Spirited Away", "The Dark Knight" ] } } }, { $addFields: { lastThreeCast: { $lastN: { input: "$cast", n: 3 } } } }, { $project: { _id: 0, title: 1, cast: 1, lastThreeCast: 1 } }, { $sort: { title: 1 } } ] )
O pipeline anterior:
Utiliza
$matchpara filtrar três filmes específicos.Usa
$addFieldscom$lastNpara criar um novo campolastThreeCastcontendo os últimos três elementos da arraycast.Usa
$projectpara incluir somente os campostitle,castelastThreeCastno resultado.Utiliza
$sortpara classificar os resultados por título.