MongoDB এগ্রিগেশন পাইপলাইনে $group এবং $sum দিয়ে মোট যোগফল বের করা
MongoDB-এ একটি কালেকশনের সব ডকুমেন্টের একটি সংখ্যাগত ফিল্ডের মোট যোগফল (Total Sum) বের করতে $group স্টেজের ভেতরে $sum অ্যাকিউমুলেটর ব্যবহার করা হয়।
১. কালেকশন ও নমুনা ডেটা তৈরি
> db.demo337.insertOne({"Amount":100});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5231e5f8647eb59e56209b") }
> db.demo337.insertOne({"Amount":500});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5231e9f8647eb59e56209c") }
> db.demo337.insertOne({"Amount":400});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5231ebf8647eb59e56209d") }
২. সব ডকুমেন্ট দেখানো
> db.demo337.find();
আউটপুট:
{ "_id" : ObjectId("5e5231e5f8647eb59e56209b"), "Amount" : 100 }
{ "_id" : ObjectId("5e5231e9f8647eb59e56209c"), "Amount" : 500 }
{ "_id" : ObjectId("5e5231ebf8647eb59e56209d"), "Amount" : 400 }
৩. এগ্রিগেশন কোয়েরি: Amount ফিল্ডের মোট যোগফল
> db.demo337.aggregate([
{ $group: {
_id: null,
totalAmount: { $sum: "$Amount" }
}}
]);
ব্যাখ্যা:
_id: null- সব ডকুমেন্টকে একসাথে গ্রুপ করতে (সিঙ্গল গ্রুপ)।$sum: "$Amount"- Amount ফিল্ডের সব মান যোগ করে।- যদি গ্রুপিং করতে চান (যেমন ক্যাটাগরি অনুযায়ী), তবে
_id: "$Category"ব্যবহার করুন।
৪. ফলাফল
{ "_id" : null, "totalAmount" : 1000 }
১০০ + ৫০০ + ৪০০ = ১০০০। এটি বড় ডেটাসেটে খুব দ্রুত কাজ করে।