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

MongoDB-এ $match এবং aggregate() ব্যবহার করে নির্দিষ্ট কী-ভ্যালু সমষ্টি (Sum) করা


MongoDB এগ্রিগেশন পাইপলাইনে $match এবং $group দিয়ে ফিল্টার করে সমষ্টি করা

MongoDB-এ নির্দিষ্ট শর্ত অনুযায়ী ডকুমেন্ট ফিল্টার করে (যেমন নির্দিষ্ট নাম এবং বয়স), তারপর একটি ফিল্ডের মোট যোগফল (Sum) বের করতে $match এবং $group স্টেজ ব্যবহার করা হয়।

১. কালেকশন ও নমুনা ডেটা তৈরি

> db.demo329.insertOne({"Name":"Chris","Age":21,"Marks":45});
{ "acknowledged" : true, "insertedId" : ObjectId("5e516f28f8647eb59e56207d") }
> db.demo329.insertOne({"Name":"David","Age":21,"Marks":56});
{ "acknowledged" : true, "insertedId" : ObjectId("5e516f28f8647eb59e56207e") }
> db.demo329.insertOne({"Name":"Mike","Age":21,"Marks":78});
{ "acknowledged" : true, "insertedId" : ObjectId("5e516f29f8647eb59e56207f") }
> db.demo329.insertOne({"Name":"David","Age":21,"Marks":89});
{ "acknowledged" : true, "insertedId" : ObjectId("5e516f29f8647eb59e562080") }

২. সব ডকুমেন্ট দেখানো

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

আউটপুট:

{ "_id" : ObjectId("5e516f28f8647eb59e56207d"), "Name" : "Chris", "Age" : 21, "Marks" : 45 }
{ "_id" : ObjectId("5e516f28f8647eb59e56207e"), "Name" : "David", "Age" : 21, "Marks" : 56 }
{ "_id" : ObjectId("5e516f29f8647eb59e56207f"), "Name" : "Mike", "Age" : 21, "Marks" : 78 }
{ "_id" : ObjectId("5e516f29f8647eb59e562080"), "Name" : "David", "Age" : 21, "Marks" : 89 }

৩. এগ্রিগেশন কোয়েরি: Name="David" এবং Age=21 वालাদের Marks সমষ্টি

> db.demo329.aggregate([
  { $match: { $and: [ { 'Name': 'David' }, { Age: 21 } ] } },
  { $group: { _id: null, TotalMarks: { $sum: "$Marks" } } }
])

স্টেজ ব্যাখ্যা:

  • $match - ফিল্টার করে শুধু David এবং Age 21 वालাদের রেখে।
  • $group - _id: null মানে সব মিলে যাওয়া ডকুমেন্ট একসাথে গ্রুপ। $sum: "$Marks" Marks ফিল্ডের যোগফল।

৪. ফলাফল

{ "_id" : null, "TotalMarks" : 145 }

David-এর দুটি ডকুমেন্টের Marks: 56 + 89 = 145। এটি খুব দক্ষতার সাথে বড় ডেটাসেটে কাজ করে।


  1. MongoDB-এ কেস-ইনসেনসিটিভ (Case-Insensitive) নাম দিয়ে ডকুমেন্ট খোঁজা ($regex /^name$/i)

  2. MongoDB-এ নির্দিষ্ট FirstName এবং LastName সম্বয় ডকুমেন্ট খোঁজা ($and + $in)

  3. MongoDB-তে $elemMatch ব্যবহার করে অ্যারে ভ্যালু অনুযায়ী ডকুমেন্ট ফিল্টার করা

  4. MongoDB-এ একটি ফিল্ডের সব মান আপডেট করা নির্দিষ্ট স্ট্রিং দিয়ে