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

MongoDB অ্যাগ্রিগেশন দিয়ে সব ডকুমেন্ট জুড়ে ডISTINCT মান গণনা করা

MongoDB-তে একাধিক ডকুমেন্ট জুড়ে নেস্টেড অ্যারেতে ইউনিক ভ্যালুর সংখ্যা বের করতে অ্যাগ্রিগেশন পাইপলাইনে $unwind, $group, $addToSet এবং $size একসাথে ব্যবহার করা হয়।

উদাহরণ: গ্রুপ এবং অন্যান্য ডিটেইলস সহ ডকুমেন্ট

> db.demo718.insertOne({
    "id": 101,
    "details": { "OtherDetails": ["Chris", "Mike", "Sam"], "GroupName": ["Group-1"], "Info": [] }
});
> db.demo718.insertOne({
    "id": 102,
    "details": { "OtherDetails": ["Chris", "David"], "GroupName": ["Group-1"], "Info": [] }
});

অ্যাগ্রিগেশন পাইপলাইন: Group-1-এর ইউনিক OtherDetails গণনা

> db.demo718.aggregate([
    { $unwind: "$details.GroupName" },
    { $match: { "details.GroupName": "Group-1" } },
    { $unwind: "$details.OtherDetails" },
    { $group: {
        _id: "$details.GroupName",
        OtherDetailsUnique: { $addToSet: "$details.OtherDetails" }
    }},
    { $project: {
        _id: 0,
        GROUP_NAME: "$_id",
        OtherDetailsUniqueCount: { $size: "$OtherDetailsUnique" }
    }}
]);

আউটপুট:

{ "GROUP_NAME" : "Group-1", "OtherDetailsUniqueCount" : 4 }

প্রক্রিয়া:

  1. $unwind - GroupName এবং OtherDetails অ্যারে ফ্ল্যাটেন করা
  2. $match - শুধু Group-1 ফিল্টার করা
  3. $group + $addToSet - ইউনিক নামগুলো সেটে সংগ্রহ করা
  4. $project + $size - সেটের সাইজ (ইউনিক কাউন্ট) বের করা
  1. MongoDB-তে $slice ব্যবহার করে ফিল্ডের রিটার্নিং ভ্যালু লিমিট করা

  2. MongoDB-এ "@email" স্ট্রিং সার্চ করা ফিল্ড ভ্যালুতে

  3. MongoDB-এ ডISTINCT এলিমেন্টের জন্য MAX ভ্যালু বের করা

  4. MySQL-এ CHAR_LENGTH() দিয়ে কলামের সব মানর অক্ষর গণনা করা