কম্পিউটার টিউটোরিয়াল

MongoDB অ্যাগ্রিগেশন: একই ID 가진 প্রোডাক্টের প্রাইস সাম করা

MongoDB-এ একই ফিল্ডের ভ্যালু (যেমন Product_Id) 가진 ডকুমেন্টগুলো গ্রুপ করে অন্য ফিল্ড (যেমন ProductPrice) এর যোগফল বের করতে $group এবং $sum অপারেটর ব্যবহার করা হয়।

নমুনা কালেকশন তৈরি

> db.aggreagateDemo.insertOne({ "Product_Id": 1, "ProductPrice": 50 });
{ "acknowledged": true, "insertedId": ObjectId("5e06d3c025ddae1f53b621d9") }

> db.aggreagateDemo.insertOne({ "Product_Id": 2, "ProductPrice": 100 });
{ "acknowledged": true, "insertedId": ObjectId("5e06d3c625ddae1f53b621da") }

> db.aggreagateDemo.insertOne({ "Product_Id": 2, "ProductPrice": 500 });
{ "acknowledged": true, "insertedId": ObjectId("5e06d3cb25ddae1f53b621db") }

> db.aggreagateDemo.insertOne({ "Product_Id": 1, "ProductPrice": 150 });
{ "acknowledged": true, "insertedId": ObjectId("5e06d3d125ddae1f53b621dc") }

সমস্ত ডকুমেন্ট প্রদর্শন

> db.aggreagateDemo.find().pretty();

আউটপুট:

{ "_id": ObjectId("5e06d3c025ddae1f53b621d9"), "Product_Id": 1, "ProductPrice": 50 }
{ "_id": ObjectId("5e06d3c625ddae1f53b621da"), "Product_Id": 2, "ProductPrice": 100 }
{ "_id": ObjectId("5e06d3cb25ddae1f53b621db"), "Product_Id": 2, "ProductPrice": 500 }
{ "_id": ObjectId("5e06d3d125ddae1f53b621dc"), "Product_Id": 1, "ProductPrice": 150 }

গ্রুপ বাই ID এবং সাম করার কোয়েরি

> db.aggreagateDemo.aggregate([
  { 
    $group: { 
      _id: "$Product_Id", 
      TotalValue: { $sum: "$ProductPrice" } 
    } 
  }
]);

ফলাফল

{ "_id": 2, "TotalValue": 600 }
{ "_id": 1, "TotalValue": 200 }

ব্যাখ্যা:

  • _id: "$Product_Id" - Product_Id ফিল্ড দিয়ে গ্রুপিং করে। একই ID वाले ডকুমেন্টগুলো এক গ্রুপে পড়ে।
  • TotalValue: { $sum: "$ProductPrice" } - প্রতিটি গ্রুপের ProductPrice ফিল্ডের যোগফল বের করে।
  • Product_Id: 1 -> 50 + 150 = 200
  • Product_Id: 2 -> 100 + 500 = 600

আউটপুট ফরম্যাট পরিবর্তন

আউটপুটে _id বদলে Product_Id নাম রাখতে:

db.aggreagateDemo.aggregate([
  { $group: { _id: "$Product_Id", TotalValue: { $sum: "$ProductPrice" } } },
  { $project: { _id: 0, Product_Id: "$_id", TotalValue: 1 } }
]);

ফলাফল: { "Product_Id": 2, "TotalValue": 600 }, { "Product_Id": 1, "TotalValue": 200 }

  1. MongoDB Aggregation-এ নির্দিষ্ট ফিল্ড মান অনুযায়ী ডকুমেন্ট ফিল্টার করা

  2. MongoDB অ্যাগ্রিগেশন: $match এবং $and দিয়ে একাধিক শর্ত মিলিয়ে ডকুমেন্ট বের করা

  3. MongoDB এгреগেশন: অন্য ডকুমেন্টের সমান ID গুলো গ্রুপ করা

  4. MongoDB এগ্রিগেশন: একাধিক ফিল্ড দিয়ে কাউন্ট করা