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

MongoDB-এ একাধিক ফিল্ড দিয়ে গ্রুপিং এবং ডুপ্লিকেট কাউন্ট

এখানে aggregate() পাইপলাইনে $cond ব্যবহার করে দুই ফিল্ড (Name1, Name2) এর ভ্যালু সর্ট করে গ্রুপ করা হয়েছে, যাতে অর্ডার বদলানো সত্ত্বেও একই জোড়া একই গ্রুপে পড়ে।

ডেটা ইনসার্ট:

> db.demo536.insertOne({"Name1":"Chris","Name2":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8c843eef4dcbee04fbbc01") }
> db.demo536.insertOne({"Name1":"David","Name2":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8c843fef4dcbee04fbbc02") }
> db.demo536.insertOne({"Name1":"Bob","Name2":"Sam"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8c843fef4dcbee04fbbc03") }
> db.demo536.insertOne({"Name1":"Chris","Name2":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8c843fef4dcbee04fbbc04") }

সকল ডকুমেন্ট:

> db.demo536.find();

আউটপুট:

{ "_id" : ObjectId("5e8c843eef4dcbee04fbbc01"), "Name1" : "Chris", "Name2" : "David" }
{ "_id" : ObjectId("5e8c843fef4dcbee04fbbc02"), "Name1" : "David", "Name2" : "Chris" }
{ "_id" : ObjectId("5e8c843fef4dcbee04fbbc03"), "Name1" : "Bob", "Name2" : "Sam" }
{ "_id" : ObjectId("5e8c843fef4dcbee04fbbc04"), "Name1" : "Chris", "Name2" : "David" }

এগريجেশন কোয়েরি:

> db.demo536.aggregate([
... { $project: {
...   FirstName1: { $cond: { if: { $gte: [ "$Name1", "$Name2" ] }, then: "$Name2", else: "$Name1" } },
...   FirstName2: { $cond: { if: { $lt: [ "$Name1", "$Name2" ] }, then: "$Name2", else: "$Name1" } }
... }},
... { $group: { _id: { Name1: "$FirstName1", Name2: "$FirstName2" }, count: { $sum: 1 } } }
... ])

আউটপুট:

{ "_id" : { "Name1" : "Bob", "Name2" : "Sam" }, "count" : 1 }
{ "_id" : { "Name1" : "Chris", "Name2" : "David" }, "count" : 3 }

ব্যাখ্যা

  • $project স্টেজে $cond দিয়ে দুটি নাম アルফাবেটিক অর্ডারে সাজানো হয়েছে।
  • $group স্টেজে সাজানো নাম জোড়া দিয়ে গ্রুপ করে $sum: 1 দিয়ে কাউন্ট করা হয়েছে।
  • ফলস্বরূপ Chris, David জোড়াটি ৩ বার এসেছে (২বার Chris, David এবং ১বার David, Chris)।
  1. MySQL-এ GROUP BY COUNT(*) ব্যবহার করে একক কলামে ডুপ্লিকেট মানların ঘনত্ব বের করা

  2. MySQL-এ COUNT(*) এবং GROUP BY ব্যবহার করে সর্বোচ্চ ফ্রিকোয়েন্সি वाला নাম বের করা

  3. MySQL-এ GROUP BY এবং ORDER BY দিয়ে কলামে পুনরাবৃত্ত মানগুলোর গণনা

  4. MySQL-এ তারিখ অনুযায়ী গ্রুপ করে ডুপ্লিকেট মান গণনা করা