ensureIndex() / createIndex() ব্যবহার
MongoDB-তে ইনডেক্স তৈরি করার জন্য ensureIndex() (পুরানো) বা createIndex() (নতুন) মেথড ব্যবহার করা হয়।
ইউনিক ইনডেক্স তৈরি (UserCountryName-এ)
> db.createCollection("creatingUniqueIndexDemo");
{ "ok" : 1 }
> db.creatingUniqueIndexDemo.ensureIndex({ "UserCountryName": 1 }, { unique: true });
{ "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
টেস্ট: ডুপ্লিকেট কান্ট্রি ইনসার্ট চেষ্টা
> db.creatingUniqueIndexDemo.insertOne({"UserName":"John","UserAge":21,"UserCountryName":"US"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9947bd330fd0aa0d2fe4d8") }
> db.creatingUniqueIndexDemo.insertOne({"UserName":"Mike","UserAge":23,"UserCountryName":"UK"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9947c9330fd0aa0d2fe4d9") }
> db.creatingUniqueIndexDemo.insertOne({"UserName":"Robert","UserAge":26,"UserCountryName":"US"});
// E11000 duplicate key error: UserCountryName_1 dup key: { : "US" }
> db.creatingUniqueIndexDemo.insertOne({"UserName":"Robert","UserAge":26,"UserCountryName":"AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9947e3330fd0aa0d2fe4db") }
ফাইনাল ডেটা
> db.creatingUniqueIndexDemo.find().pretty();
আউটপুট: US, UK, AUS - তিনটি ইউনিক কান্ট্রি।
সাধারণ ইনডেক্স (non-unique)
db.collection.createIndex({ "fieldName": 1 }) // 1 = ascending, -1 = descending
নোট: MongoDB 3.0+ এ createIndex() প্রয়োগ করুন। কমপাউন্ড ইনডেক্স: { "field1": 1, "field2": -1 }।