Solución del reto:
//media del precio, y que muestre el total por cada propiedad
[
{
$match: {
"address.country_code": "US",
},
},
{
$sort: {
property_type: 1,
price: 1,
},
},
// group by $property_type
{
$group: {
_id: "$property_type",
count:{
$sum: 1
},
priceAvgMedia:{
$avg: "$price"
},
cheaper: {
$first: {
nombre: "$name",
precio: "$price",
direccion: "$address",
},
},
moreExpensive: {
$last: {
nombre: "$name",
precio: "$price",
direccion: "$address",
},
},
},
{
$set:{
"Tipo de propiedad": "$_id",
"Cantidad por propiedad": "$count",
"Precio promedio por propiedad": {$round:["$priceAvgMedia",2]},
"propiedades destacadas":[
{
"tipo":"cheaper",
"nombre":"$cheaper.nombre",
"precioDolar":"$cheaper.precio",
"tipoCambio": 4.00,
"precioEuro": {$multiply: ["$cheaper.precio", 4.0]}
},
{
"tipo":"moreExpensive",
"nombre":"$moreExpensive.nombre",
"precio":"$moreExpensive.precio",
"tipoCambio": 4.00,
"precioEuro": {$multiply: ["$moreExpensive.precio", 4.0]}
}
]
}
},
{
$project:{
_id:0,
priceAvgMedia:0,
count:0,
cheaper:0,
moreExpensive:0
}
}
]
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?