13. Operaciones de agregación en MongoDB

Página 67

La operación de agregación en MongoDB es una forma eficaz de procesar datos y devolver resultados calculados. Las operaciones de agregación agrupan valores de múltiples documentos y pueden realizar una variedad de operaciones en estos datos agrupados para devolver un único resultado. MongoDB proporciona tres formas de realizar agregaciones: el canal de agregación, el método de reducción de mapas y operaciones de agregación de propósito único.

Canal de agregación

Los canales de agregación en MongoDB utilizan operadores de canales para procesar y transformar sus documentos en etapas agrupadas. Cada documento recorre estas etapas del proceso en orden. La canalización de agregación es un marco potente que proporciona capacidades similares a las consultas SQL GROUP BY.

Los operadores de canalización incluyen $match, $group, $sort, $project, $limit y muchos otros. $match filtra documentos, $group agrupa valores de varios documentos, $sort ordena los documentos, $project reorganiza cada documento, $limit limita la cantidad de documentos para pasar al siguiente paso.

Operaciones de reducción de mapas

El método map-reduce es una forma flexible de realizar agregaciones, especialmente cuando se trata de grandes volúmenes de datos. Map-Reduce es un modelo de procesamiento de datos para condensar grandes volúmenes de datos en resultados agregados útiles. En MongoDB, map-reduce opera en una colección de documentos y devuelve un resultado de la colección.

El proceso de reducción de mapas en MongoDB primero asigna datos para generar pares clave-valor y luego reduce todos los pares con la misma clave. El mapeo y la reducción son operaciones JavaScript personalizadas que MongoDB realiza en la colección.

Operaciones de agregación con un solo propósito

MongoDB también proporciona algunas operaciones de agregación de propósito único, como contar el número de documentos, calcular la suma de valores y encontrar valores mínimos y máximos en una colección.

Ejemplos de operaciones de agregación

Consideremos algunos ejemplos de operaciones de agregación en MongoDB. Supongamos que tenemos una colección de 'pedidos' con documentos que contienen 'customer_id' y 'amount'.

Para encontrar la suma total de 'cantidad' para cada 'customer_id', podemos usar el canal de agregación con el operador $group:

db.pedidos.aggregate([
   {
      $grupo: {
         _id: "$cliente_id",
         total: { $suma: "$cantidad" }
      }
   }
])

Este código agrupa documentos por 'customer_id' y agrega los valores de 'cantidad' para cada grupo.

Para encontrar la suma total del 'monto' para todos los documentos, podemos usar el método map-reduce:

db.pedidos.mapReduce(
   función() { emitir(nulo, esta.cantidad); },
   función (clave, valores) { return Array.sum (valores); },
   {
      salida: "order_totals"
   }
)

Este código genera la 'cantidad' de cada documento con una clave nula y luego suma todos los valores generados.

Para contar el número de documentos de la colección, podemos utilizar la operación de agregación de propósito único 'count':

db.pedidos.count()

Este código devuelve el número de documentos de la colección 'pedidos'.

Las operaciones de agregación en MongoDB son una forma poderosa y flexible de trabajar con datos. Le permiten procesar y transformar sus documentos de múltiples maneras para obtener los resultados que desea.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de las siguientes afirmaciones sobre las operaciones de agregación en MongoDB es correcta?

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

¡Tú error! Inténtalo de nuevo.

Siguiente página del libro electrónico gratuito:

6814. Trabajar con canal de agregación

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.