createIndex() ব্যবহার করে কম্পাউন্ড ইউনিক ইনডেক্স
একাধিক ফিল্ড মিলিয়ে ইউনিক কম্পাউন্ড ইনডেক্স তৈরি করা যায়। এখানে StudentName এবং StudentAge মিলিয়ে ইউনিক ইনডেক্স তৈরি করা হয়েছে।
কম্পাউন্ড ইনডেক্স তৈরি
> db.compoundIndexDemo.createIndex({"StudentName":1,"StudentAge":1},{unique:true});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
ডকুমেন্ট ইনসার্ট
> db.compoundIndexDemo.insertOne({"StudentName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e084c1d25ddae1f53b62207") }
> db.compoundIndexDemo.insertOne({"StudentName":"Chris","StudentAge":23});
{ "acknowledged" : true, "insertedId" : ObjectId("5e084c5625ddae1f53b62209") }
> db.compoundIndexDemo.insertOne({"StudentName":"Chris","StudentAge":22});
{ "acknowledged" : true, "insertedId" : ObjectId("5e084c5b25ddae1f53b6220a") }
> db.compoundIndexDemo.insertOne({"StudentName":"Chris","StudentAge":23});
E11000 duplicate key error collection: web.compoundIndexDemo index: StudentName_1_StudentAge_1 dup key: { : "Chris", : 23.0 }
সব ডকুমেন্ট দেখানো
> db.compoundIndexDemo.find().pretty();
ফলাফল (ডুপ্লিকেট "Chris", 23 ইনসার্ট হয়নি):
ব্যাখ্যা: কম্পাউন্ড ইনডেক্সে {StudentName, StudentAge} জোড়া ইউনিক। একই নাম কিন্তু বয়স ভিন্ন হলে ইনসার্ট হয়, কিন্তু একই নাম এবং একই বয়স হলে ডুপ্লিকেট এরর দেয়।