MongoDB-এ ফিল্ডকে ইউনিক এবং স্পার্স (null ভ্যালু অনুমতি দেয়) ইন্ডেক্স করতে createIndex()-তে unique: true, sparse: true অপশন দিন। একটি কালেকশন তৈরি করুন:
> db.demo658.createIndex({FirstName:1},{unique:true,sparse:true});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
> db.demo658.insertOne({"FirstName":"John","LastName":"Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea067144deddd72997713d9") }
> db.demo658.insertOne({"FirstName":"Adam","LastName":"Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea0671c4deddd72997713da") }
> db.demo658.insertOne({"FirstName":"John","LastName":"Doe"});
2020-04-22T21:17:46.072+0530 E QUERY [js] WriteError: E11000 duplicate key error collection: onlinecustomertracker.demo658 index: FirstName_1 dup key: { : "John" }
...
> db.demo658.insertOne({_id:"Bob"});
{ "acknowledged" : true, "insertedId" : "Bob" }
> db.demo658.insertOne({_id:"Mike"});
{ "acknowledged" : true, "insertedId" : "Mike" }
find() দিয়ে ডকুমেন্ট দেখান:
> db.demo658.find();
আউটপুট (দ্বিতীয় "John" রিজেক্ট হয়েছে):
ব্যাখ্যা:
unique: trueডুপ্লিকেট ভ্যালু ব্লক করে (E11000 এরর)।sparse: trueনাল বা অনুপস্থিত ফিল্ড 가진 ডকুমেন্টকে ইন্ডেক্সে যোগ করে না, তাই একাধিক নাল ভ্যালু अलাউড। স্পার্স ছাড়া ইউনিক ইন্ডেক্সে শুধু একটা নাল অ্যালাউড থাকে।