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

MongoDB-এ null মান ইন্ডেক্স করা (Unique Index with Null)

MongoDB-এ ইউনিক ইন্ডেক্সে null মান ইন্ডেক্স হয় (Single Null Allowed)

MongoDB-এ ইউনিক ইন্ডেক্স তৈরি করলে null মানও ইন্ডেক্স হয়। তবে ইউনিক কনস্ট্রেইন্টের কারণে শুধু একটি ডকুমেন্টে সেটি ফিল্ড অনুপস্থিত বা null থাকতে পারে। দ্বিতীয় null ইনসার্ট করলে ডুপ্লিকেট কি এরর দেবে।

উদাহরণ: ইউনিক ইন্ডেক্স তৈরি ও ডেটা ইনসার্ট

> db.demo170.createIndex({"Value":1},{unique:true});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
> db.demo170.insert({"Value":100});
WriteResult({ "nInserted" : 1 })
> db.demo170.insert({"Value":null});
WriteResult({ "nInserted" : 1 })
> db.demo170.insert({"Value":90});
WriteResult({ "nInserted" : 1 })
> db.demo170.insert({"Value":78});
WriteResult({ "nInserted" : 1 })

সব ডকুমেন্ট দেখানো

> db.demo170.find();

আউটপুট:

{ "_id" : ObjectId("5e369b789e4f06af551997da"), "Value" : 100 }
{ "_id" : ObjectId("5e369b7c9e4f06af551997db"), "Value" : null }
{ "_id" : ObjectId("5e369b809e4f06af551997dc"), "Value" : 90 }
{ "_id" : ObjectId("5e369b969e4f06af551997dd"), "Value" : 78 }

সর্টেড আউটপুট (null প্রথমে আসে)

> db.demo170.find().sort({Value:1});

আউটপুট:

{ "_id" : ObjectId("5e369b7c9e4f06af551997db"), "Value" : null }
{ "_id" : ObjectId("5e369b969e4f06af551997dd"), "Value" : 78 }
{ "_id" : ObjectId("5e369b809e4f06af551997dc"), "Value" : 90 }
{ "_id" : ObjectId("5e369b789e4f06af551997da"), "Value" : 100 }

ব্যাখ্যা

  • createIndex({"Value":1},{unique:true}) — Value ফিল্ডে ইউনিক অ্যাসেন্ডিং ইন্ডেক্স।
  • null মানটি ইন্ডেক্স হয়েছে এবং সর্টে সবচেয়ে আগে আসে (BSON অর্ডার: null < numbers < strings < objects...)。
  • দ্বিতীয় ডকুমেন্টে {"Value":null} ইনসার্ট করলে E11000 duplicate key error দেবে।
  • Partial Index (MongoDB 3.2+): {partialFilterExpression: {Value: {$ne: null}}} দিয়ে null মানগুলো ইন্ডেক্স থেকে বাদ দেওয়া যায়, তাহলে একাধিক null আলাউড।
  1. MongoDB-এ ফিক্সড ভ্যালু ফিল্ড সহ কম্পাউন্ড ইনডেক্স তৈরি

  2. MongoDB Aggregate-এ $avg ব্যবহার করে গড় মান বের করা

  3. MongoDB শেলে ডেট ফরম্যাট করার পদ্ধতি

  4. MongoDB-তে createIndex() দিয়ে নেস্টেড ফিল্ডে ইন্ডেক্স তৈরি করা