Definição
$topNovidades na versão 8.3.
Retorna o principal elemento de uma array de acordo com a ordem de classificação especificada.
Observação
Desambiguação
Esta página descreve o operador de expressão $top. Você também pode usar $top nestes outros contextos:
$top (accumulator), que retorna o principal elemento dentro de um grupo de acordo com a ordem de classificação especificada.$top (window function), que é usado no estágio$setWindowFieldspara retornar o elemento superior de documentos em uma janela específica.
Sintaxe
Quando utilizado como um operador de expressão , $top tem a seguinte sintaxe:
{ $top: { sortBy: <expression>, input: <expression> }}Campo | necessidade | Descrição |
|---|---|---|
sortBy | Obrigatório | Especifica a ordem dos resultados. Consulte Comportamento de classificação para obter mais informações sobre os valores |
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 do conjunto de dados de amostra sample_mflix. Para obter detalhes sobre como carregar esse conjunto de dados em sua implantação, consulte Carregar o conjunto de dados 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 pipeline de agregação a seguir usa $top na array cast para retornar o primeiro membro do elenco em ordem alfabética de um filme especificado:
db.movies.aggregate([ { $match: { title: "The Godfather" } }, { $project: { _id: 0, title: 1, firstCastMemberAlphabetically: { $top: { sortBy: 1, input: "$cast" } } } }])[ { title: 'The Godfather', firstCastMemberAlphabetically: 'Al Pacino' }]Neste exemplo, $top classifica a array cast existente em ordem alfabética crescente e retorna o primeiro valor.