Docs Menu
Docs Home
/ /

Map-Reduce

Nota

Pipeline de agregación como alternativa

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

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

Puedes ejecutar pipelines de agregación en la interfaz de usuario para implementaciones alojadas en MongoDB Atlas.

Map-reduce es un paradigma de procesamiento de datos para condensar grandes volúmenes de datos en resultados agregados útiles. Para realizar operaciones de map-reduce, MongoDB proporciona el comando de base de datos mapReduce.|

Considerar la siguiente operación map-reduce:

Diagrama de la operación anotada de map-reduce.

En esta operación map-reduce, MongoDB aplica la fase map a cada documento de entrada (es decir, los documentos en la colección que coinciden con la condición del query). La función map emite pares clave-valor. Para aquellas claves que tienen múltiples valores, MongoDB aplica la fase de reduce, que recopila y condensa los datos agregados. MongoDB almacena los resultados en una colección. Opcionalmente, la salida de la función de reducción puede pasar a través de una función de finalización para condensar o procesar aún más los resultados de la agregación.

Todas las funciones de map-reduce en MongoDB son JavaScript y se ejecutan dentro del proceso mongod. Las operaciones de map-reduce toman los documentos de una única colección como entrada y pueden realizar cualquier ordenación y limitación arbitraria antes de comenzar la etapa de mapeo. mapReduce puede devolver los resultados de una operación de map-reduce como un documento, o puede guardar los resultados en colecciones.

Nota

Map-reduce no es compatible con los clústeres gratuitos y flexibles de MongoDB Atlas.

En MongoDB, las operaciones de map-reduce utilizan funciones JavaScript personalizadas para asignar, o asociar, valores a una clave. Si una clave tiene varios valores asignados a ella, la operación reduce los valores de la clave a un solo objeto.

El uso de funciones personalizadas de JavaScript proporciona flexibilidad a las operaciones de map-reduce. Por ejemplo, en el procesamiento de un documento, la función de mapeo puede crear más de una asignación de clave-valor o ninguna asignación. Las operaciones de map-reduce también pueden utilizar una función personalizada de JavaScript para realizar modificaciones finales en los resultados al término de la operación de mapeo y reducción, como realizar cálculos adicionales.

En MongoDB, la operación map-reduce puede guardar resultados en una colección o devolver los resultados en línea. Si se guarda la salida de map-reduce en una colección, se pueden realizar operaciones map-reduce posteriores en la misma colección de entrada que reemplacen, combinen o reduzcan los nuevos resultados con los resultados anteriores. Consultar mapReduce y Realizar map-reduce incremental para obtener detalles y ejemplos.

Al devolver los resultados de una operación de map-reduce en línea, los documentos de resultados deben estar dentro del límite de tamaño del documento BSON, que actualmente es de 16 mebibytes. Para obtener información adicional sobre los límites y restricciones en las operaciones de map-reduce, se puede consultar la página de referencia de mapReduce (comando de base de datos).

MongoDB admite operaciones de map-reduce en colecciones particionadas.

Las vistas no dan soporte a operaciones de map-reduce.

Volver

De SQL a agregación

En esta página