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

MongoDB-এ দুটি কি (Key) দিয়ে ডুপ্লিকেট এন্ট্রি সরানোর পদ্ধতি

MongoDB-এ দুটি ফিল্ডের কম্বিনেশন (Compound Key) অনুযায়ী ডুপ্লিকেট ডকুমেন্ট সনাক্ত করে সরাতে অ্যাগ্রিগেশন পাইপলাইনে $sort, $group, $replaceRoot এবং $out স্টেজ ব্যবহার করা হয়।

কলেকশন এবং ডকুমেন্ট তৈরি

> db.demo108.insertOne({"Value1":23,"Value2":24});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ee3e49fd5fd66da214477") }
> db.demo108.insertOne({"Value1":23,"Value2":25});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ee3f29fd5fd66da214478") }
> db.demo108.insertOne({"Value1":23,"Value2":24});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ee3f59fd5fd66da214479") }

সব ডকুমেন্ট দেখানো (ডুপ্লিকেট সহ)

> db.demo108.find();

আউটপুট:

{ "_id" : ObjectId("5e2ee3e49fd5fd66da214477"), "Value1" : 23, "Value2" : 24 }
{ "_id" : ObjectId("5e2ee3f29fd5fd66da214478"), "Value1" : 23, "Value2" : 25 }
{ "_id" : ObjectId("5e2ee3f59fd5fd66da214479"), "Value1" : 23, "Value2" : 24 }

১ম এবং ৩য় ডকুমেন্টে Value1: 23, Value2: 24 একই (ডুপ্লিকেট)।

ডুপ্লিকেট সরানোর কোয়ারী

> db.demo108.aggregate([
...   { "$sort": { "_id": 1 } },
...   { "$group": {
...     "_id": { "Value1": "$Value1", "Value2": "$Value2" },
...     "doc": { "$first": "$$ROOT" }
...   }},
...   { "$replaceRoot": { "newRoot": "$doc" } },
...   { "$out": "demo108" }
... ]);

ফলাফল (ডুপ্লিকেট মুছে ফেলা হয়েছে)

> db.demo108.find();
{ "_id" : ObjectId("5e2ee3f29fd5fd66da214478"), "Value1" : 23, "Value2" : 25 }
{ "_id" : ObjectId("5e2ee3e49fd5fd66da214477"), "Value1" : 23, "Value2" : 24 }

স্টেপ বাই স্টেপ ব্যাখ্যা:

  1. $sort: {_id: 1} - পুরনো ডকুমেন্ট আগে আসবে (প্রথম ইনসার্টেড রাখতে)
  2. $group - Value1 এবং Value2 কম্বিনেশন অনুযায়ী গ্রুপ, $first দিয়ে প্রতিটি গ্রুপের প্রথম ডকুমেন্ট ($$ROOT) রাখা
  3. $replaceRoot - গ্রুপের আউটপুট ফরম্যাট থেকে মূল ডকুমেন্ট স্ট্রাকচার ফেরত আনা
  4. $out: "demo108" - ফলাফলকে একই কালেকশনে ওভাররাইট করা (সতর্কতা: পুরানো ডেটা হারাবে!)

সতর্কতা: $out কালেকশনটি পুরোপুরি রিপ্লেস করে দেয়। প্রোডাকশনে ব্যবহার করার আগে ব্যাকআপ নিন বা নতুন কালেকশন নাম দিন (যেমন $out: "demo108_deduped")।

বিকল্প পদ্ধতি (ইউনিক ইনডেক্স দিয়ে):

db.demo108.createIndex({Value1: 1, Value2: 1}, {unique: true, dropDups: true})

দ্রষ্টব্য: dropDups MongoDB 3.0+ এ ডিপ্রিকেটেড।

  1. MongoDB কালেকশন থেকে ডুপ্লিকেট রিমুভ করার পদ্ধতি

  2. দ্রুত গাইড: iTunes-এ থেকে ডুপ্লিকেট গান সরান

  3. আপনার ম্যাক থেকে ডুপ্লিকেট ফটো সরান – দ্রুত, নিরাপদ এবং সহজ গাইড

  4. Google Drive-এ ডুপ্লিকেট ফাইল খুঁজে বের করুন ও মুছে ফেলুন: দক্ষ গাইড