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

MongoDB-এ সাব-ডকুমেন্টের ফিল্ড সমষ্টি (Sum) করা অ্যাগ্রিগেশন দিয়ে

MongoDB-এ নেস্টেড সাব-ডকুমেন্টের সংখ্যাসূচক ফিল্ডের যোগফল বের করতে অ্যাগ্রিগেশন পাইপলাইনে $group এবং $sum ব্যবহার করা হয়।

নমুনা ডেটা তৈরি (CustomerDetails.CustomerPurchase.CustomerPurchaseAmount)

> db.summingSubDocumentDemo.insertOne({ "_id": 101, "CustomerDetails": { "CustomerPurchase": { "CustomerPurchaseAmount": 2000 } } });
{ "acknowledged": true, "insertedId": 101 }
> db.summingSubDocumentDemo.insertOne({ "_id": 102, "CustomerDetails": { "CustomerPurchase": { "CustomerPurchaseAmount": 3000 } } });
{ "acknowledged": true, "insertedId": 102 }
> db.summingSubDocumentDemo.insertOne({ "_id": 103, "CustomerDetails": { "CustomerPurchase": { "CustomerPurchaseAmount": 5000 } } });
{ "acknowledged": true, "insertedId": 103 }

সব ডকুমেন্ট দেখুন

> db.summingSubDocumentDemo.find().pretty();
আউটপুট:
{
  "_id": 101,
  "CustomerDetails": { "CustomerPurchase": { "CustomerPurchaseAmount": 2000 } }
}
{
  "_id": 102,
  "CustomerDetails": { "CustomerPurchase": { "CustomerPurchaseAmount": 3000 } }
}
{
  "_id": 103,
  "CustomerDetails": { "CustomerPurchase": { "CustomerPurchaseAmount": 5000 } }
}

অ্যাগ্রিগেশন দিয়ে মোট অ্যামাউন্ট বের করা

> db.summingSubDocumentDemo.aggregate([
  {$group: {_id: "", totalAmount: {$sum: "$CustomerDetails.CustomerPurchase.CustomerPurchaseAmount"}}},
  {$project: {_id: 0, totalAmount: 1}}
]);
আউটপুট:
{ "totalAmount": 10000 }

ব্যাখ্যা:

  • $group: _id: "" মানে সব ডকুমেন্ট একই গ্রুপে।
  • $sum: ডট নোটেশন দিয়ে নেস্টেড ফিল্ডের পথ দিয়ে যোগফল করা।
  • $project: _id: 0 দিয়ে _id লুকিয়ে শুধু totalAmount দেখানো।

  1. MongoDB-এ স্ট্রিং ফিল্ডের যোগফল (Sum) বের করা

  2. MongoDB-এ নির্দিষ্ট ফিল্ড দিয়ে সার্চ করা

  3. MongoDB-তে প্রজেক্ট ফিল্ড ব্যবহার করা

  4. MongoDB-তে find()-এ প্রজেকশন দিয়ে _id ফিল্ড হাইড করা