Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Menu Docs
Página inicial do Docs
/ /
Expressões

$bottomN (operador de expressão )

$bottomN

Novidades na versão 8.3.

Retorna os últimos n elementos de uma array de acordo com a ordem de classificação especificada. Se a array tiver menos de n elementos, $bottomN retornará todos os elementos da array.

Observação

Desambiguação

Esta página descreve o $bottomN operador de expressão. Para o $bottomN operador acumulador, consulte $bottomN (operador acumulador ).

Quando utilizado como um operador de expressão , $bottomN tem a seguinte sintaxe:

{
$bottomN:
{
n: <expression>,
sortBy: { <field1>: <sort order>, <field2>: <sort order> ... },
input: <expression>
}
}
Campo
necessidade
Descrição

n

Obrigatório

O número de elementos de array a serem retornados.

sortBy

Obrigatório

Especifica a ordem dos resultados. Consulte Comportamento de classificação para obter mais informações.

Entrada

Obrigatório

A array que $bottomN avalia.

O MongoDB classifica a array input com base no valor sortBy. A tabela a seguir fornece exemplos de diferentes opções de classificação:

input
sortBy
Classificado input
[ 8, 3, 1, 10]

1

[1, 3, 8, 10]
[ 8, 3, 1, 10]

-1

[10, 8, 3, 1]
[
{ a: 1, b: 1 },
{ a: 2, b: 2 },
{ a: 2, b: 1 }
]

{ a: 1, b: 1 }

[
{ a: 1, b: 1 },
{ a: 2, b: 1 },
{ a: 2, b: 2 }
]

O campo input deve resultar em uma array. Se você especificar um input que não é uma array, os erros do MongoDB .

O exemplo a seguir usa a movies coleção do conjunto de dados de amostra sample_mflix. Para obter detalhes sobre como carregar este conjunto de dados em sua implantação, consulte Carregar o conjunto de dados de amostra.

A collection movies contém documentos que se assemelham ao exemplo a seguir :

{
_id: ObjectId('573a1396f29313caabce4a9a'),
year: 1972,
genres: [ 'Crime', 'Drama' ],
title: 'The Godfather',
cast: [ 'Marlon Brando', 'Al Pacino', 'James Caan', 'Richard S. Castellano' ],
directors: [ 'Francis Ford Coppola' ],
runtime: 175,
...
}

O seguinte pipeline de agregação usa $bottomN na array cast:

db.movies.aggregate([
{
$match: { title: "The Godfather" }
},
{
$project: {
_id: 0,
title: 1,
lastThreeCastMembersAlphabetically: {
$bottomN: {
n: 3,
sortBy: 1,
input: "$cast"
}
}
}
}
])
[
{
title: 'The Godfather',
lastThreeCastMembersAlphabetically: [ 'James Caan', 'Marlon Brando', 'Richard S. Castellano' ]
}
]

Neste exemplo, $bottomN classifica a array cast existente em ordem alfabética crescente e retorna os últimos três valores.

Nesta página