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
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Carlos Olivera Terrazas
Aportes 5
Preguntas 0
El ejemplo lo ejecute localmente en mongoDB. Para eso tuve que crear una base de datos e importar todas las colecciones de mongoDb atlas.
var db=db.getSiblingDB("sample_airbnb")
var resultado=db.listingsAndReviews.aggregate(
{
$addFields:{
wordCount:{
$function:{
body: function(description){
if(description){
var words = description.split('');
return words.length;
} else{
return 0
}
},
args:["$description"],
lang:"js"
}
}
}
},
{
$group:{
_id:"$property_type",
averageWordCount:{ $avg: "$wordCount"}
}
},
{
$count: "cantidad",
}
)
print(resultado)
#Resultado
[ { cantidad: 36 } ]
use('sample_airbnb')
db.listingsAndReviews.aggregate([
{
$addFields:{
wordCount: {
$function:{
body:function(descripcion){
if(descripcion){
const words = descripcion.split(' ')
return words.length
}else{
return 0
}
},
args: ["$description"],
lang: "js"
}
}
}
},
{
$group: {
_id: "$propery_type",
averageWordCount: {$avg: "$wordCount"}
}
}
])
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?