Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Comparação de comandos de agregação

Nesta página

  • Tabela de comparação de comandos de agregação

Observação

Pipeline de Agregação como Alternativa à Redução de Mapa

A partir do MongoDB , 5.0, map-reduce está obsoleto:

Para obter exemplos de alternativas de aggregation pipeline para map-reduce, consulte:

A tabela a seguir fornece uma breve visão geral dos recursos dos comandos de agregação do MongoDB.

Descrição

Projetado com objetivos específicos de melhorar o desempenho e a usabilidade para tarefas de agregação.

Usa uma abordagem de "pipeline" em que os objetos são transformados à medida que passam por uma série de operadores de pipeline, como $group, $match e $sort.

Consulte Operadores de pipeline de agregação para obter mais informações sobre os operadores de pipeline.

Implementa a agregação map-reduce para processar grandes conjuntos de dados.
Funcionalidades principais

Os operadores de pipeline podem ser repetidos conforme necessário.

Os operadores de pipeline não precisam produzir um documento de saída para cada documento de entrada.

Também pode gerar novos documentos ou filtrar documentos.

Usando o estágio $merge, você pode criar visualizações materializadas sob demanda, em que o conteúdo da coleção de saída pode ser atualizado de forma gradual enquanto o pipeline é executado. $merge pode incorporar resultados (inserir novos documento, mesclar documento, substituir documento, manter documento existentes, falhar na operação, processar documento com um pipeline de atualização personalizado) em uma coleção existente.

Além de agrupar operações, pode executar tarefas complexas de agregação, bem como realizar agregação adicional em conjuntos de dados em crescimento contínuo.

Consulte a página Exemplos de Map-Reduce e Executar Map-Reduce Incremental.

Flexibilidade

Você pode definir expressões de agregação personalizadas com $accumulator e $function.

Você também pode adicionar campo computados, criar novos objeto virtuais e extrair subcampo no nível superior dos resultados usando o operador de pipeline $project.

Consulte $project para obter mais informações, bem como Operadores de pipeline de agregação para obter mais informações sobre todos os operadores de pipeline disponíveis.

As funções JavaScript personalizadas map, reduce e finalize oferecem flexibilidade para a lógica de agregação.

Consulte a página mapReduce para obter detalhes e restrições sobre as funções.

Resultados de saída

Retorna os resultados como cursores. Se o pipeline incluir os estágios $out ou $merge, o cursor será vazio.

Com $out, você pode substituir completamente uma coleção de saída existente ou gerar saída para uma nova coleção. Consulte $out para detalhes.

Com $merge, você pode gerar uma saída para uma coleção nova ou existente. Para coleções existentes, você pode especificar como incorporar os resultados na coleção de saída (inserir novos documentos, mesclar documentos, substituir documentos, manter documentos existentes, falhar na operação, processar documentos com um pipeline de atualização personalizado). Consulte $merge para saber detalhes.

Retorna resultados em várias opções (in-line, nova coleção, mesclar, substituir, reduzir). Consulte a página mapReduce para obter detalhes sobre as opções de saída.
Fragmentação

Suporta coleções de entrada não fragmentadas e fragmentadas.

$merge pode gerar uma saída para uma coleção não fragmentada ou fragmentada.

Suporta coleções de entrada não fragmentadas e fragmentadas.
MAIS INFORMAÇÕES

Dica

Veja também:

Voltar

Comandos