Comparação de comandos de agregação
Nesta página
Observação
Pipeline de Agregação como Alternativa à Redução de Mapa
A partir do MongoDB , 5.0, map-reduce está obsoleto:
Em vez de map-reduce, você deve usar um aggregation pipeline. aggregation pipeline fornece melhor desempenho e usabilidade do que a redução de mapa.
Você pode reescrever operações de redução de mapa utilizando estágios do pipeline de agregação, como
$group
,$merge
e outros.Nas operações de map-reduce que exigem funcionalidade personalizada, você pode usar os operadores de agregação
$accumulator
e$function
. Você pode usar esses operadores para definir expressões de agregação personalizadas no JavaScript.
Para obter exemplos de alternativas de aggregation pipeline para map-reduce, consulte:
Tabela de comparação de comandos de agregação
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 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 | 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 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 Consulte | As funções JavaScript personalizadas Consulte a página |
Resultados de saída | Retorna os resultados como cursores. Se o pipeline incluir os estágios Com Com | 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.
| Suporta coleções de entrada não fragmentadas e fragmentadas. |
MAIS INFORMAÇÕES |