Portada de libro electrónico gratuitaCreación y mantenimiento de base de datos MongoDB desde básico hasta avanzado.

Creación y mantenimiento de base de datos MongoDB desde básico hasta avanzado.

5

(1)

88 páginas

Usando Map-Reduce en MongoDB

Capítulo 69

Tiempo estimado de lectura: 3 minutos

Audio Icon

Escuchar en audio

0:00 / 0:00

Map-Reduce es una poderosa técnica de programación que nos permite procesar y generar grandes conjuntos de datos con un modelo de programación paralelo, distribuido y tolerante a fallas. En MongoDB, podemos utilizar la funcionalidad Map-Reduce para procesar grandes volúmenes de datos de manera eficiente y flexible.

Para empezar, comprendamos qué es Map-Reduce. Map-Reduce se compone de dos funciones principales: Map y Reduce. La función Mapa toma un conjunto de datos y lo convierte en otro conjunto de datos, donde los elementos individuales se dividen en tuplas (clave/valor). Luego, la función Reducir toma la salida del Mapa como entrada y combina estas tuplas de datos en un conjunto más pequeño de tuplas.

Para ilustrar cómo funciona Map-Reduce en MongoDB, consideremos un ejemplo sencillo. Supongamos que tenemos una colección de documentos que registran las ventas de productos en una tienda online. Cada documento contiene información como el ID del producto, el nombre del producto, la categoría del producto y la cantidad vendida. Queremos calcular la cantidad total vendida para cada categoría de producto.

Primero, definimos la función Mapa. ​​Esta función se aplica a cada documento de la colección. En nuestro ejemplo, la función Mapa generará la categoría del producto como clave y la cantidad vendida como valor.

función() {
   emitir(esta.categoría, esta.cantidad);
}

A continuación, definimos la función Reducir. Esta función se aplica a todos los valores que tengan la misma clave. En nuestro ejemplo, la función Reducir sumará todas las cantidades de la misma categoría.

Continúa en nuestra aplicación.

Podrás escuchar el audiolibro con la pantalla apagada, recibir un certificado gratuito para este curso y además tener acceso a otros 5.000 cursos online gratuitos.

O continúa leyendo más abajo...
Download App

Descargar la aplicación

función (clave, valores) {
   return Array.sum(valores);
}

Finalmente, realizamos la operación Map-Reduce en MongoDB usando el método mapReduce. Pasamos las funciones Map y Reduce como parámetros, junto con el nombre de la colección de salida.

db.ventas.mapReduce(
   función de mapa,
   reducir la función,
   {salida: "cantidad_total_por_categoría" }
)

El resultado será una nueva colección llamada "cantidad_total_por_categoría", que contiene la cantidad total vendida para cada categoría de producto.

Es importante tener en cuenta que la operación Map-Reduce en MongoDB es flexible y se puede personalizar para satisfacer diversas necesidades. Por ejemplo, podemos utilizar la opción "consulta" para procesar sólo un subconjunto de documentos que cumplan ciertos criterios. También podemos utilizar la opción "ordenar" para ordenar los documentos antes de procesarlos. Además, podemos usar la función "finalizar" para realizar algún procesamiento adicional después del paso de reducción.

En conclusión, Map-Reduce es una poderosa herramienta para procesar y analizar grandes conjuntos de datos en MongoDB. Ofrece una gran flexibilidad y puede utilizarse para resolver una amplia gama de problemas de procesamiento de datos. Sin embargo, también es una técnica avanzada que requiere una sólida comprensión de los conceptos de programación y el funcionamiento interno de MongoDB. Por lo tanto, se recomienda para usuarios avanzados que necesitan realizar análisis complejos u operaciones de procesamiento de datos a gran escala.

Ahora responde el ejercicio sobre el contenido:

¿Qué es Map-Reduce y cómo se utiliza en MongoDB?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Siguiente capítulo

Implementación de transacciones en MongoDB

Arrow Right Icon
Descarga la aplicación para obtener una certificación gratuita y escuchar cursos en segundo plano, incluso con la pantalla apagada.