Introducción
Conoce el potencial de Aggregation Framework usando datos reales
Casos para usar Aggregation Framework y no queries de MongoDB o map-reduce
Preparando entorno de trabajo: configurando MongoDB Atlas y la base de datos
Preparando entorno de trabajo: Docker y Mongo Compass
Operaciones básicas
Filtrando documentos con $match
Tranformando los datos con $group
Moldeamos los resultados con $project
Agregamos etapas con $count y $avg
Manipulando campos con $set
Etapas de Aggregation Framework
Trabajando con arrays y $unwind
Persistencia de datos con $out
Trabajamos y conocemos $geoNear
Consultas geoespaciales con $geoNear
Aprendemos a usar $lookup
Operaciones avanzadas
Funciones personalizadas
Evaluando expresiones con $redact
Usando funciones personalizadas con $accumulator
Agrupaciones avanzadas con $bucket y $bucketAuto
Performance y optimización
Recomendaciones para optimización y uso de recursos
Realizando profiling en MongoDB
Próximos pasos
Repaso de lo aprendido y recomendaciones
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Convierte tus certificados en tÃtulos universitarios en USA
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Carlos Olivera Terrazas
Aportes 6
Preguntas 0
//realizar uniones con otras colecciones
// listar los clientes que tienen la mayor cantidad de transacciones
[
{
$lookup: {
from: "accounts", // coleccion de donde se parte
localField: "accounts", //campo de la coleccion customers
foreignField: "account_id", // cacmpo a relacionar de la coleccion customers a la coleccion account
as: "account_info" //array donde se alamacena la informacion
}
},
// para trabajar el array resultado del primer resultado
{
$unwind: "$account_info"
},
{
$lookup: {
from: "transactions",
localField: "account_info.account_id",
foreignField: "account_id",
as: "account_transactions"
}
},
{
$unwind: "$account_transactions"
},
{
$group:{
_id: "$name",
totalCompras:{
$sum:{
$size: "$account_transactions.transactions"
}
}
}
},
{
$sort:{
totalCompras: -1
}
},
{
$limit:5
},
{
$project:{
_id:0,
Nombre: "$_id",
totalCompras: 1
}
}
]
use('sample_analytics')
db.customers.aggregate([
{
$lookup: {
from: "accounts",
localField: "accounts",
foreignField: "account_id",
as: "account_info"
}
},
{
$unwind: "$account_info"
},
{
$lookup: {
from: "transactions",
localField: "account_info.account_id",
foreignField: "account_id",
as: "account_trasactions"
}
},
{
$unwind: "$account_trasactions"
},
{
$group: {
_id: "$name",
total: {
$sum: {
$size: "$account_trasactions.transactions"
}
}
}
},
{
$sort: {
total: -1
}
},
{
$limit: 5
}
])
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?