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 কম্বিনেশনটি সব ডকুমেন্টে অনন্য থাকবে।