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

MongoDB-তে অ্যাগ্রিগেশন দিয়ে ডISTINCT সিলেক্ট এবং কাউন্ট করা

MongoDB-তে নেস্টেড অ্যারে থেকে নাম এবং মার্কসের কম্বিনেশন অনুযায়ী ডISTINCT মান বের করে এবং প্রতিটি ইউনিক কম্বিনেশনের ফ্রিকোয়েন্সি কাউন্ট করতে অ্যাগ্রিগেশন পাইপলাইন ব্যবহার করা হয়।

উদাহরণ: ডিটেইলস অ্যারে (নাম, মার্কস) - ডুপ্লিকেট ডেটা সহ

> db.demo586.insertOne({ "details": [ { "Name": "Chris", "Marks": 71 }, { "Name": "Chris", "Marks": 61 }, { "Name": "David", "Marks": 81 } ] });
> db.demo586.insertOne({ "details": [ { "Name": "Chris", "Marks": 71 }, { "Name": "Carol", "Marks": 61 }, { "Name": "David", "Marks": 81 } ] });

জটিল পাইপলাইন: নাম অনুযায়ী গ্রুপ, মার্কসের ইউনিক ভ্যালু এবং কাউন্ট

> var q = [
    { $unwind: "$details" },
    { $group: {
        _id: { "Name": "$details.Name", "Marks": "$details.Marks" },
        count: { $sum: 1 }
    }},
    { $group: {
        _id: "$_id.Name",
        distinctV: { $addToSet: { "value": "$_id.Marks", "numberOfValues": "$count" } }
    }},
    { $project: { _id: 0, Name: "$_id", distinctV: 1 } }
];
> db.demo586.aggregate(q);

আউটপুট:

{ "distinctV" : [ { "value" : 61, "numberOfValues" : 1 } ], "Name" : "Carol" }
{ "distinctV" : [ { "value" : 71, "numberOfValues" : 2 }, { "value" : 61, "numberOfValues" : 1 } ], "Name" : "Chris" }
{ "distinctV" : [ { "value" : 81, "numberOfValues" : 2 } ], "Name" : "David" }

প্রক্রিয়া:

  1. $unwind - details অ্যারে ফ্ল্যাটেন
  2. প্রথম $group - (Name, Marks) জোড়া অনুযায়ী গ্রুপ, কাউন্ট
  3. দ্বিতীয় $group - Name অনুযায়ী গ্রুপ, মার্কসের ইউনিক সেট ($addToSet) তৈরি
  4. $project - আউটপুট ফরম্যাট
  1. MySQL-এ SELECT * WITH DISTINCT ID (GROUP BY)

  2. MySQL-এ SELECT DISTINCT এবং COUNT() একসাথে ব্যবহার করে ইউনিক মান এবং তাদের ফ্রিকোয়েন্সি বের করা

  3. MySQL-এ GROUP BY দিয়ে ডISTINCT ভ্যালু ও কাউন্ট পাওয়া

  4. MySQL-এ DISTINCT এবং ORDER BY MAX() দিয়ে আইডি অনুযায়ী সাজানো