Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
/ / /

Map-Reduce y Colecciones Particionadas

Nota

Pipeline de agregación como alternativa a Map-Reduce

A partir de MongoDB 5.0, El map-reduce está en desuso:

Para ejemplos de alternativas de pipeline de agregación a map-reduce, consulte:

map-reduce soporta operaciones en colecciones particionadas, tanto como entrada como salida. Esta sección describe los comportamientos de mapReduce específicos de las colecciones particionadas.

Cuando se utiliza una colección particionada como entrada para una operación de map-reduce, mongos automáticamente envia la tarea de map-reduce a cada partición en paralelo. No se requiere ninguna opción especial. mongos esperará a que se terminen todas las tareas en todas las particiones.

Si el campo out de mapReduce tiene el valor sharded, MongoDB particiona la colección de resultados utilizando el campo _id como la clave de partición.

Para enviar a una colección particionada:

  • Si la colección de salida no existe, primero crea la colección particionada.

  • Si la colección de salida ya existe pero no está particionada, la operación de Map-Reduce falla.

  • Para una colección particionada nueva o vacía, MongoDB utiliza los resultados de la primera etapa de la operación map-reduce para crear los fragmentos iniciales distribuidos entre las particiones.

  • mongos despacha, en paralelo, una tarea de posprocesamiento map-reduce a cada partición que posee un fragmento. Durante el postprocesamiento, cada partición extraerá los resultados de sus propios fragmentos de las otras particiones, ejecutará la reducción/finalización final y escribirá localmente en la colección de salida.

Nota

  • Durante posteriores tareas de map-reduce, MongoDB divide los fragmentos según sea necesario.

  • El equilibrado de fragmentos para la colección de salida se evita automáticamente durante el post-procesamiento para impedir problemas de concurrencia.

Volver

Map-Reduce

En esta página