Definição
$bottomNNovidades na versão 8.3.
Retorna os últimos
nelementos de uma array de acordo com a ordem de classificação especificada. Se a array tiver menos denelementos,$bottomNretornará todos os elementos da array.
Observação
Desambiguação
Esta página descreve o operador de expressão $bottomN. Para o operador acumulador $bottomN, consulte $bottomN (operador acumulador).
Sintaxe
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 |
Comportamento
Comportamento de classificação
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 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| | ||||||||||
|
| | ||||||||||
|
| |
Input Values
O campo input deve resultar em uma array. Se você especificar um input que não é uma array, os erros do MongoDB .
Exemplo
O exemplo a seguir usa a coleção movies dodataset de amostra sample_mflix. Para obter detalhes sobre como carregar este dataset em sua implantação, consulte Carregar o dataset de amostra.
A movies collection contém document 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.