Menu Docs

Simultaneidade de redução de mapa

Observação

Pipeline de Agregação como uma Alternativa ao map-reduce

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 map-reduce utilizando aggregation pipeline stages, 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:

A operação map-reduce é composta de muitas tarefas, incluindo leituras da collection de entrada, execuções da função map , execuções da função reduce , gravações em uma coleção temporária durante o processamento e gravações na coleção de saída.

Durante a operação, o map-reduce usa as seguintes travas:

  • A fase de leitura usa um bloqueio de leitura. Produz a cada 100 documentos.

  • A inserção na collection temporária usa um bloqueio de escrita para uma única escrita.

  • Se a coleção de saída não existir, a criação da coleção de saída usará um bloqueio de escrita.

  • Se a collection de saída existir, então a ação de saída (ou seja, merge, replace, reduce) aceita um bloqueio de escrita. Este bloqueio de escrita é global e bloqueia todas as operações na instância mongod .