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 }