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

MongoDB-এ দুই কালাম (ফিল্ড) কম্বাইন করে ইউনিক করতে (Compound Unique Index)

MongoDB-এ একাধিক ফিল্ড মিলিয়ে ইউনিক কনস্ট্রেইন্ট (unique constraint) লাগাতে কম্পাউন্ড ইনডেক্স তৈরি করতে হয় এবং unique: true সেট করতে হয়।

কম্পাউন্ড ইউনিক ইনডেক্স তৈরি (StudentFirstName + StudentLastName)

> db.keepTwoColumnsUniqueDemo.createIndex({"StudentFirstName":1,"StudentLastName":1},{unique:true});
{ "createdCollectionAutomatically": true, "numIndexesBefore": 1, "numIndexesAfter": 2, "ok": 1 }

ডকুমেন্ট ইনসার্ট করা

> db.keepTwoColumnsUniqueDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Smith","StudentAge":21});
{ "acknowledged": true, "insertedId": ObjectId("5cd30fd7b64f4b851c3a13e5") }
> db.keepTwoColumnsUniqueDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Doe","StudentAge":23});
{ "acknowledged": true, "insertedId": ObjectId("5cd30fe5b64f4b851c3a13e6") }

ডুপ্লিকেট ইনসার্ট করার চেষ্টা (John + Smith আবার)

> db.keepTwoColumnsUniqueDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Smith","StudentAge":24});
WriteError: E11000 duplicate key error collection: sample.keepTwoColumnsUniqueDemo index: StudentFirstName_1_StudentLastName_1 dup key: { : "John", : "Smith" }
এরর: duplicate key error collection - একই কম্বিনেশন দুবার ইনসার্ট করা যাবে না।

বचे থাকা ডকুমেন্টগুলো দেখুন

> db.keepTwoColumnsUniqueDemo.find().pretty();
আউটপুট:
{
  "_id": ObjectId("5cd30fd7b64f4b851c3a13e5"),
  "StudentFirstName": "John",
  "StudentLastName": "Smith",
  "StudentAge": 21
}
{
  "_id": ObjectId("5cd30fe5b64f4b851c3a13e6"),
  "StudentFirstName": "John",
  "StudentLastName": "Doe",
  "StudentAge": 23
}

ব্যাখ্যা: কম্পাউন্ড ইউনিক ইনডেক্স নিশ্চিত করে যে StudentFirstName এবং StudentLastName কম্বিনেশনটি সব ডকুমেন্টে অনন্য থাকবে।

  1. অ্যান্ড্রয়েড SQLite-এ দুই কলাম একসাথে সর্ট করা (ORDER BY)

  2. Android SQLite-এ দুটি কলাম কনক্যাট (Concatenate) করার পদ্ধতি

  3. MongoDB-এ কালেকশন ড্রপ কীভাবে করবেন?

  4. MongoDB কনসোল ক্লিয়ার করার পদ্ধতি