WHAT'S NEW?
Loading...

Using group with project while lookup to another collections on Express.js and mongoDB




Collections structure :

- component_list


- component_sold


- registered_buyer





Code :

    // line 1 pake db.collection.aggregate juga bisa, optional aja
    CollectionModel.aggregate(
    {
      $lookup: {
        from: "component_list",
        localField: "component_id",
        foreignField: "_id",
        as: "unit"
      }
    }, {
      $unwind: "$unit"
    }, {
      $lookup: {
        from: "registered_buyer",
        localField: "buyer_id",
        foreignField: "_id",
        as: "buyer"
      }
    }, {
      $unwind: "$buyer"
    }, {
      $group: {
        "_id": {
          "name": "$unit.name",
          "brand": "$unit.brand"
        },
        "total_sold": {
          $sum: "$quantity"
        }
      }
    }, {
      $project: {
        "_id": 1,
        "unit": {
          "name": "$_id.name", // dapet dari group, redefine $unit.name ga bakal work
          "brand": "$_id.brand" // sama, dapet dari group
        },
        "buyer": {
          "name": "$buyer.name",
          "address": "$buyer.address",
          "telp": "$buyer.telp"
        },
        "total_sold": "$total_sold" // dapet dari group
      }
    }


code source from : https://github.com/noric1902/express_b/blob/master/routes/app.js

0 comments:

Post a Comment