Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Mapear-Reduzir

Nesta página

  • Funções JavaScript de redução de mapa
  • Mapear resultados de redução
  • Coleções partilhadas
  • Visualizações

Observação

Pipeline de agregação como alternativa

A partir do MongoDB 5.0, redução de mapa está obsoleta:

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

Map-reduce é um paradigma de processamento de dados para condensar grandes volumes de dados em resultados agregados úteis. Para executar operações de redução de mapa, o MongoDB fornece o comandomapReduce banco de dados.

Considere a seguinte operação map-reduce:

Diagrama da operação de map-reduce anotada.

Nesta operação de redução de mapa, o MongoDB aplica a fase de mapa a cada documento de entrada (ou seja, os documentos da coleção que correspondem à condição de consulta). A função map emite pares de valores-chave. Para as chaves que possuem vários valores, o MongoDB aplica a fase de redução, que coleta e condensa os dados agregados. O MongoDB então armazena os resultados em uma coleção. Opcionalmente, a saída da função de redução pode passar por uma função de finalização para condensar ou processar ainda mais os resultados da agregação.

Todas as funções de redução de mapa no MongoDB são JavaScript e executadas dentro do processo do mongod. As operações de redução de mapas usam os documentos de uma única coleção como entrada e podem realizar qualquer classificação e limitação arbitrária antes de iniciar o estágio de mapa. mapReduce pode retornar os resultados de uma operação de redução de mapa como um documento ou pode escrever os resultados em coleções.

Observação

A operação de map-reduce não é aceita em clusters gratuitos do MongoDB Atlas e instâncias sem servidor do MongoDB Atlas.

No MongoDB, as operações de redução de mapa usam funções JavaScript personalizadas para mapear ou associar valores a uma chave. Se uma chave tiver vários valores mapeados para ela, a operação reduzirá os valores da chave para um único objeto.

O uso de funções JavaScript personalizadas fornece flexibilidade para operações de redução de mapa. Por exemplo, ao processar um documento, a função de mapa pode criar mais de um mapeamento de chave e valor ou nenhum mapeamento. As operações de mapeamento e redução também podem usar uma função JavaScript personalizada para fazer modificações finais nos resultados no final da operação de mapeamento e redução, como a realização de cálculos adicionais.

No MongoDB, a operação de redução de mapa pode gravar resultados em uma coleção ou retornar os resultados embutidos. Se você gravar a saída de redução de mapa em uma coleção, poderá executar operações subsequentes de redução de mapa na mesma coleção de entrada que mesclam, substituem, mesclam ou reduzem novos resultados com resultados anteriores. Consulte mapReduce e Executar Redução de Mapa Incremental para detalhes e exemplos.

Ao retornar os resultados de uma operação de redução de mapa em linha, os documentos resultantes devem estar dentro do limite de tamanho do documento BSON, que atualmente é de 16 megabytes. Para obter mais informações sobre os limites e restrições das operações de redução de mapas, consulte a página de referência do mapReduce.

O MongoDB oferece suporte a operações de redução de mapa em coleções fragmentadas.

No entanto, a partir da versão 4,2, MongoDB deprecia a opção map-reduce para criar uma nova coleção fragmentada e o uso da sharded opção para map-reduce. Para gerar saída para uma coleção fragmentada, crie primeiro a coleção fragmentada. O MongoDB 4.2 também descontinua a substituição de uma coleção fragmentada existente.

Consulte redução de mapa e coleções fragmentadas.

As visualizações não suportam operações de redução de mapa.

← Comparação de comandos de agregação