sql >> Database >  >> NoSQL >> MongoDB

LEFT JOIN with GROUP by in MongoDB

De "join"-concepten bestaan ​​niet echt in Mongodb, omdat we het van nature hebben over een ongestructureerde database. Op een gegeven moment $lookup werd toegevoegd en gaf ons een "left join"-mogelijkheid, maar toch vind ik het "verkeerd" om deze gestructureerde concepten te gebruiken bij het omgaan met Mongo.

Dat gezegd hebbende, zou deze volgende pijplijn moeten voldoen aan uw behoeften:

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"
        }

    }
])



  1. Mongodb Leesvoorkeuren

  2. Kan geen verbinding maken met server 127.0.0.1:27017 verbindingspoging mislukt MongoDB

  3. Waarom geeft Mongodb me niet meer dan 100 documenten?

  4. MongoDB oplog heeft records met stippen in sleutelnamen, die niet kunnen worden opgevraagd, zeker