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

MongoDB-এ কী ফিল্ড (key field) অনুযায়ী ডুপ্লিকেট ডকুমেন্ট খুঁজে বের করা

MongoDB-এ নির্দিষ্ট ফিল্ডের ভিত্তিতে ডুপ্লিকেট ডকুমেন্ট খুঁজতে aggregate পাইপলাইনে $group, $match, $sort ব্যবহার করা হয়।

উদাহরণ ডেটা (StudentName ফিল্ডে ডুপ্লিকেট):

> db.findDuplicateByKeyDemo.insertOne({"StudentId": 1, "StudentName": "John"});
> db.findDuplicateByKeyDemo.insertOne({"StudentId": 2, "StudentName": "Carol"});
> db.findDuplicateByKeyDemo.insertOne({"StudentId": 3, "StudentName": "Carol"});
> db.findDuplicateByKeyDemo.insertOne({"StudentId": 4, "StudentName": "John"});
> db.findDuplicateByKeyDemo.insertOne({"StudentId": 5, "StudentName": "Sam"});
> db.findDuplicateByKeyDemo.insertOne({"StudentId": 6, "StudentName": "Carol"});

ডুপ্লিকেট খুঁজার কোয়েরি:

> db.findDuplicateByKeyDemo.aggregate([
    {$group: {_id: {StudentName: "$StudentName"}, UIDS: {$addToSet: "$_id"}, COUNTER: {$sum: 1}}},
    {$match: {COUNTER: {$gte: 2}}},
    {$sort: {COUNTER: -1}},
    {$limit: 10}
]).pretty();

ফলাফল:

{
    "_id": {"StudentName": "Carol"},
    "UIDS": [ObjectId("..."), ObjectId("..."), ObjectId("...")],
    "COUNTER": 3
}
{
    "_id": {"StudentName": "John"},
    "UIDS": [ObjectId("..."), ObjectId("...")],
    "COUNTER": 2
}

Carol ৩ বার, John ২ বার রিপিট হয়েছে। $addToSet দিয়ে ডুপ্লিকেট ডকুমেন্টের _id গুলো সংগ্রহ করা হয়েছে।

  1. MongoDB-তে ডুপ্লিকেট ডকুমেন্ট গ্রুপ করা

  2. MongoDB-এ ফিল্ড অনুযায়ী ডকুমেন্ট গ্রুপ করা ($group এবং $project)

  3. MongoDB-তে সব ডকুমেন্টে নতুন ফিল্ড যোগ করা ($addFields)

  4. MongoDB-এ ফর্মুলা দিয়ে কালেকশনের সব ডকুমেন্টের ফিল্ড আপডেট করা