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

MongoDB অ্যাগ্রিগেশন এবং GroupBy দিয়ে নামের ফ্রিকোয়েন্সি বের করা

MongoDB-এ একটি ফিল্ডের মানগুলোর ফ্রিকোয়েন্সি (কতবার আয়ত্ত হয়েছে) বের করতে অ্যাগ্রিগেশন পাইপলাইনে $group স্টেজের সাথে $sum: 1 ব্যবহার করা হয়। এটি SQL-এর GROUP BY ... COUNT(*)-এর সমতুল্য।

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

> db.demo232.insertOne({ _id: 101, Name: "Chris" });
{ "acknowledged": true, "insertedId": 101 }

> db.demo232.insertOne({ _id: 102, Name: "Bob" });
{ "acknowledged": true, "insertedId": 102 }

> db.demo232.insertOne({ _id: 103, Name: "Bob" });
{ "acknowledged": true, "insertedId": 103 }

> db.demo232.insertOne({ _id: 104, Name: "David" });
{ "acknowledged": true, "insertedId": 104 }

> db.demo232.insertOne({ _id: 105, Name: "Chris" });
{ "acknowledged": true, "insertedId": 105 }

সমস্ত ডকুমেন্ট দেখানো

> db.demo232.find();

আউটপুট:

{ "_id": 101, "Name": "Chris" }
{ "_id": 102, "Name": "Bob" }
{ "_id": 103, "Name": "Bob" }
{ "_id": 104, "Name": "David" }
{ "_id": 105, "Name": "Chris" }

নামের ফ্রিকোয়েন্সি বের করা

> db.demo232.aggregate([
  { $group: { _id: "$Name", Frequency: { $sum: 1 } } }
]);

ফলাফল

{ "_id": "David", "Frequency": 1 }
{ "_id": "Bob", "Frequency": 2 }
{ "_id": "Chris", "Frequency": 2 }

ব্যাখ্যা:

  • $group: { _id: "$Name" } - Name ফিল্ড দিয়ে গ্রুপিং করে। একই নাম वाले এক গ্রুপে পড়ে।
  • Frequency: { $sum: 1 } - প্রতিটি গ্রুপে ডকুমেন্ট সংখ্যা গণনা করে (প্রতিটি ডকুমেন্টের জন্য ১ যোগ করে)।
  • Chris: ২ বার, Bob: ২ বার, David: ১ বার।

ফ্রিকোয়েন্সি অনুযায়ী সর্ট করা

db.demo232.aggregate([
  { $group: { _id: "$Name", Frequency: { $sum: 1 } } },
  { $sort: { Frequency: -1 } }
]);

ফলাফল: Bob (2), Chris (2), David (1) - ডিসেন্ডিং অর্ডার।

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

db.demo232.aggregate([
  { $group: { _id: "$Name", Frequency: { $sum: 1 } } },
  { $project: { _id: 0, Name: "$_id", Frequency: 1 } }
]);

ফলাফল: { "Name": "David", "Frequency": 1 }, { "Name": "Bob", "Frequency": 2 }, { "Name": "Chris", "Frequency": 2 }

  1. MongoDB Aggregation-এ $redact এবং $cond ব্যবহার করে ডকুমেন্ট ফিল্টার

  2. MongoDB Aggregation-এ ডুপ্লিকেট নামের কাউন্ট ও সাবজেক্ট লিস্ট বের করা

  3. MongoDB-তে ন্যাচারেল অর্ডার দিয়ে সর্ট করা এবং আইটেমগুলো রিভার্স করা

  4. MongoDB অ্যাগ্রিগেশন: নেস্টেড অ্যারে এলিমেন্টের গড় (Average) বের করা ($avg + $unwind)