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

MongoDB-এ ইউনিক ফিল্ড তৈরির পদ্ধতি

MongoDB-এ কোনো ফিল্ডকে ইউনিক (unique) করতে createIndex() মেথডে unique: true অপশন ব্যবহার করা হয়। এটি ডুপ্লিকেট মান ইনসার্ট করা থেকে রোধ করে।

ইউনিক ইনডেক্স তৈরি এবং ডকুমেন্ট ইনসার্ট

> db.demo82.createIndex({"EmployeeName":1},{unique:true});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
> db.demo82.insertOne({"EmployeeName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bfb1b71bf0181ecc422a0") }
> db.demo82.insertOne({"EmployeeName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bfb1f71bf0181ecc422a1") }
> db.demo82.insertOne({"EmployeeName":"Chris"});
2020-01-25T13:54:00.410+0530 E QUERY [js] WriteError: E11000 duplicate key error collection: test.demo82 index: EmployeeName_1 dup key: { : "Chris" }

তৃতীয় ইনসার্টে ডুপ্লিকেট এরর দেখা যাচ্ছে (E11000)।

সব ডকুমেন্ট দেখানো

> db.demo82.find();

আউটপুট (ডুপ্লিকেট বাদ পড়ে গেছে):

{ "_id" : ObjectId("5e2bfb1b71bf0181ecc422a0"), "EmployeeName" : "Chris" }
{ "_id" : ObjectId("5e2bfb1f71bf0181ecc422a1"), "EmployeeName" : "David" }

গুরুত্বপূর্ণ পয়েন্টসমূহ:

  • unique: true সেট করলে MongoDB স্বয়ংক্রিয়ভাবে ডুপ্লিকেট মান ব্লক করে
  • ইউনিক ইনডেক্স তৈরি করার সময় যদি কালেকশনে ইতিমধ্যে ডুপ্লিকেট মান থাকে, তবে ইনডেক্স তৈরি হবে না
  • dropDups: true অপশন (পুরানো ভার্সনে) ব্যবহার করে ডুপ্লিকেট ডিলিট করে ইনডেক্স তৈরি করা সম্ভব ছিল, কিন্তু বর্তমানে এটি ডিপ্রিকেটেড
  • কমপাউন্ড ইউনিক ইনডেক্সও তৈরি করা যায়: db.collection.createIndex({field1: 1, field2: 1}, {unique: true})

ব্যবহার ক্ষেত্র: ইমেইল, ইউজারনেম, ইম্প্লয়ি আইডি ইত্যাদি যেসব ফিল্ডে ডুপ্লিকেট নেই তা নিশ্চিত করার জন্য।

  1. MongoDB-এ বুলিয়ান (Boolean) ফিল্ড ইনসার্ট করার পদ্ধতি

  2. MongoDB-এ কেস-ইনসেনসিটিভ (Case-Insensitive) কোয়ারি করা (Regex)

  3. MongoDB-এ খালি ফিল্ড চেক করার পদ্ধতি

  4. MySQL-এ বিদ্যমান কলামকে Unique কীভাবে করবেন?