sql >> Base de Datos >  >> NoSQL >> MongoDB

LEFT JOIN con GROUP por en MongoDB

Los conceptos de "unión" realmente no existen en Mongodb, ya que estamos hablando de una base de datos no estructurada por naturaleza. Luego, en algún momento $lookup se agregó y nos dio una capacidad de "unión izquierda", todavía siento que es "incorrecto" usar estos conceptos estructurados cuando se trata de Mongo.

Dicho esto, la siguiente tubería debería satisfacer sus necesidades:

db.Orders.aggregate([
    {
        $group: {
            _id: "$product_id",
            sum: {$sum : 1}
        }
    },
    {
        $lookup: {
            from: "product",
            local_field: "_id",
            foreign_field: "_id",
            as: "product"
        }
    },
    {
        $unwind: "$product"
    },
    {
        $project: {
            Product_id: "$_id",
            OrderCount: "$sum",
            ProductName: "$product.Name"
        }

    }
])