No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Moldeamos los resultados con $project

7/21
Recursos

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Yo tengo este pipeline con dos projects:

[
    {
        '$match': {
            'idproducto': {
                '$nin': [
                    '', 0, False
                ]
            }
        }
    }, {
        '$project': {
            'idproducto': 1, 
            'descripcion': 1, 
            'idgrupo': 1, 
            'createdAt': 1, 
            'updatedAt': 1, 
            'idEmpresa': 1
        }
    }, {
        '$lookup': {
            'from': 'productosDetalle', 
            'localField': 'idproducto', 
            'foreignField': 'idproducto', 
            'as': 'detallesProducto'
        }
    }, {
        '$lookup': {
            'from': 'grupos', 
            'localField': 'idgrupo', 
            'foreignField': 'idgrupo', 
            'as': 'categoria'
        }
    }, {
        '$unwind': {
            'path': '$detallesProducto'
        }
    }, {
        '$addFields': {
            'name': '$descripcion', 
            'companyId': '$idEmpresa', 
            'description': '', 
            'price': '$detallesProducto.precio', 
            'code': '', 
            'category': {
                '$arrayElemAt': [
                    '$categoria.descripcion', 0
                ]
            }
        }
    }, {
        '$project': {
            'name': 1, 
            'companyId': 1, 
            'description': 1, 
            'price': 1, 
            'code': 1, 
            'category': 1, 
            'createdAt': 1, 
            'updatedAt': 1
        }
    }
]

pero ahora que se que project puede crear y eliminar, puedo mejorar mi pipeline

Lo nuevo respecto al código anterior: ```js { $project: { "_id": 0, "Tipo de propiedad": "$_id", "Menor precio": "$masBajo.precio", "Mayor precio": "$masAlto.precio" } } ```{        $project: {            "\_id": 0,            "Tipo de propiedad": "$\_id",            "Menor precio": "$masBajo.precio",            "Mayor precio": "$masAlto.precio"        }    }
Agregue una conversion de decimal a enteros para que los numeros se vean mas simples: ```js use("sample_airbnb") db.listingsAndReviews.aggregate([ { $match: { "address.country_code": "US" } }, { $sort: { property_type: 1, price: 1, }, }, { $group: { _id: "$property_type", masBarato: { $first: { nombre: "$name", price: "$price", direccion: "$address" } }, masCaro: { $last: { nombre: "$name", price: "$price", direccion: "$address" } } } }, { $project: { "Tipo de propiedad": "$_id", "Menor precio": { $convert: { input: "$masBarato.price", to: "double", onError: 0.0, onNull: 0.0 } }, "Mayor precio": { $convert: { input: "$masCaro.price", to: "double", onError: 0.0, onNull: 0.0 } } } } ]) ```