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

MongoDB-তে একটি ফিল্ডের নন-ডিস্টinkt (ডুপ্লিকেট) মান গুলো কীভাবে পাবেন?

Aggregation Pipeline ব্যবহার

ফিল্ডের যে মান গুলো একাধিকবার রিপিট হয়েছে (ডুপ্লিকেট), সেগুলো বের করতে aggregate() এর $group এবং $match ব্যবহার করা হয়।

উদাহরণ: ডকুমেন্ট তৈরি (UserName-এ ডুপ্লিকেট আছে)

> db.findAllNonDistinctDemo.insertOne({"UserName":"John","UserAge":28});
{ "acknowledged" : true, "insertedId" : ObjectId("5c995078863d6ffd454bb647") }
> db.findAllNonDistinctDemo.insertOne({"UserName":"Larry","UserAge":21});
{ "acknowledged" : true, "insertedId" : ObjectId("5c995081863d6ffd454bb648") }
> db.findAllNonDistinctDemo.insertOne({"UserName":"Larry","UserAge":23});
{ "acknowledged" : true, "insertedId" : ObjectId("5c995089863d6ffd454bb649") }
> db.findAllNonDistinctDemo.insertOne({"UserName":"David","UserAge":22});
{ "acknowledged" : true, "insertedId" : ObjectId("5c995093863d6ffd454bb64a") }
> db.findAllNonDistinctDemo.insertOne({"UserName":"John","UserAge":26});
{ "acknowledged" : true, "insertedId" : ObjectId("5c99509d863d6ffd454bb64b") }
> db.findAllNonDistinctDemo.insertOne({"UserName":"Robert","UserAge":24});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9950a7863d6ffd454bb64c") }
> db.findAllNonDistinctDemo.insertOne({"UserName":"Robert","UserAge":25});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9950b1863d6ffd454bb64d") }
> db.findAllNonDistinctDemo.insertOne({"UserName":"Mike","UserAge":29});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9950bc863d6ffd454bb64e") }

Aggregation কুয়েরি

> db.findAllNonDistinctDemo.aggregate([
    { $group: { "_id": "$UserName", "Counter": { $sum: 1 } } },
    { $match: { "Counter": { $gt: 1 } } }
]).pretty();

আউটপুট:

{ "_id" : "Robert", "Counter" : 2 }
{ "_id" : "Larry", "Counter" : 2 }
{ "_id" : "John", "Counter" : 2 }

পাইপলাইন ব্যাখ্যা

  1. $group - UserName দিয়ে গ্রুপ করে কাউন্ট করে
  2. $match - কাউন্ট > 1 যেগুলো (ডুপ্লিকেট)

টিপস: পুরো ডকুমেন্ট চাইলে $$ROOT বা $push ব্যবহার করে ডকুমেন্ট গুলো সংরক্ষণ করুন।

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

  2. MongoDB অ্যাগ্রিগেশন: $match এবং $and দিয়ে একাধিক শর্ত মিলিয়ে ডকুমেন্ট বের করা

  3. MongoDB-তে $slice ব্যবহার করে ফিল্ডের রিটার্নিং ভ্যালু লিমিট করা

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