馃搱 Pipeline de agregaci贸n
El Pipeline de agregaci贸n en MongoDB permite procesar datos de una colecci贸n paso a paso, transformarlos y generar resultados complejos, como sumar ventas, contar documentos o calcular promedios.
馃敼 1️⃣ Concepto de pipeline
Un pipeline es una secuencia de etapas (stages) que procesan los documentos en orden. Cada etapa recibe los documentos de la etapa anterior, los transforma y pasa el resultado a la siguiente.
- Etapas comunes:
$match,$group,$project,$sort,$limit. - Se utiliza con el m茅todo
aggregate()de MongoDB.
馃敼 2️⃣ Ejemplo pr谩ctico: total de ventas por categor铆a
Supongamos que tenemos una colecci贸n ventas con documentos as铆:
{
"_id": 1,
"producto": "Teclado mec谩nico",
"categoria": "perif茅ricos",
"precio": 50,
"cantidad": 3
}
{
"_id": 2,
"producto": "Monitor 27\"",
"categoria": "perif茅ricos",
"precio": 200,
"cantidad": 2
}
{
"_id": 3,
"producto": "Silla gaming",
"categoria": "muebles",
"precio": 150,
"cantidad": 1
}
Queremos obtener el total vendido por categor铆a:
db.ventas.aggregate([
{ $group: {
_id: "$categoria",
totalVentas: { $sum: { $multiply: ["$precio", "$cantidad"] } }
} }
])
Resultado esperado:
{ "_id": "perif茅ricos", "totalVentas": 550 }
{ "_id": "muebles", "totalVentas": 150 }
馃敼 3️⃣ Etapas frecuentes en pipelines
$match: filtrar documentos (comofind()).$group: agrupar documentos y calcular sumas, promedios, m谩ximos, m铆nimos.$project: modificar la forma de los documentos, crear campos calculados.$sort: ordenar resultados.$limit: limitar la cantidad de documentos devueltos.$skip: omitir documentos (para paginaci贸n).
馃敼 4️⃣ Ejemplo combinado: filtrar, agrupar y ordenar
db.ventas.aggregate([
{ $match: { categoria: "perif茅ricos" } },
{ $group: {
_id: "$producto",
totalVentas: { $sum: { $multiply: ["$precio", "$cantidad"] } }
} },
{ $sort: { totalVentas: -1 } }
])
Esto devuelve los productos de la categor铆a “perif茅ricos” ordenados de mayor a menor seg煤n su total vendido.
馃 5️⃣ Buenas pr谩cticas
- Utiliza
$matchal inicio para reducir el volumen de datos procesados. - Usa
$projectpara incluir solo los campos necesarios y mejorar rendimiento. - Divide tu pipeline en etapas claras y comprensibles.
- Para c谩lculos complejos, considera 铆ndices adecuados para
$matchy$sort.
馃Л 6️⃣ Resumen r谩pido
- El pipeline de agregaci贸n procesa datos paso a paso mediante etapas.
- Se puede filtrar, agrupar, ordenar y transformar documentos.
- Es m谩s potente que simples consultas
find()para generar informes y estad铆sticas.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias