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

MongoDB-এ ব্যাকগ্রাউন্ডে ইন্ডেক্স তৈরি করা

MongoDB-এ বড় কালেকশনে ইন্ডেক্স তৈরি করলে ডাটাবেস লক হতে পারে এবং রিড/রাইট অপারেশন ব্লক হতে পারে। এই সমস্যা এড়াতে createIndex() মেথডে background: true অপশন ব্যবহার করে ব্যাকগ্রাউন্ডে ইন্ডেক্স তৈরি করা যায়।

সিনট্যাক্স

db.yourCollectionName.createIndex(
  { "yourFieldName1": 1, "yourFieldName2": 1 },
  { background: true }
);

বাস্তব উদাহরণ

> db.indexCreationDemo.createIndex(
  { "StudentName": 1, "StudentAge": 1 },
  { background: true }
);
{ 
  "createdCollectionAutomatically": true, 
  "numIndexesBefore": 1, 
  "numIndexesAfter": 2, 
  "ok": 1 
}

ইন্ডেক্স তালিকা দেখানো

> db.indexCreationDemo.getIndexes();

আউটপুট:

[
  { 
    "v": 2, 
    "key": { "_id": 1 }, 
    "name": "_id_", 
    "ns": "web.indexCreationDemo" 
  },
  { 
    "v": 2, 
    "key": { "StudentName": 1, "StudentAge": 1 }, 
    "name": "StudentName_1_StudentAge_1", 
    "ns": "web.indexCreationDemo", 
    "background": true 
  }
]

ব্যাখ্যা: আউটপুটে দ্বিতীয় ইন্ডেক্সে "background": true দেখা যাচ্ছে, যা ইন্ডেক্সটি ব্যাকগ্রাউন্ডে তৈরি হয়েছে বলে বোঝাচ্ছে। v: 2 ইন্ডেক্স ভার্সন। 1 মানে অ্যাসেন্ডিং অর্ডার।

ব্যাকগ্রাউন্ড ইন্ডেক্সের বৈশিষ্ট্য

  • ইন্ডেক্স বিল্ডের সময় ডাটাবেস লক করে না
  • অন্যান্য রিড/রাইট অপারেশন চলতে থাকে
  • বিল্ড প্রসেস কিছুটা ধীর হতে পারে
  • ইন্ডেক্স তৈরি হওয়া পর্যন্ত কোয়েরি সেটি ব্যবহার করবে না

সতর্কতা

MongoDB ৪.২+ ভার্সনে ডিফল্টভাবে সব ইন্ডেক্স বিল্ড ব্যাকগ্রাউন্ডে হয় (ফোরগ্রাউন্ড বিল্ড ডিপ্রিকেটেড)। তবুও background: true দিয়ে স্পষ্ট করা ভালো অভ্যাস।

  1. MongoDB অগরিগেশনে ডকুমেন্ট অ্যাসেন্ডিং অর্ডারে সর্ট করা

  2. MongoDB-তে ন্যাচারেল অর্ডার দিয়ে সর্ট করা এবং আইটেমগুলো রিভার্স করা

  3. MongoDB অ্যাগ্রিগেশন: $match এবং $and দিয়ে একাধিক শর্ত মিলিয়ে ডকুমেন্ট বের করা

  4. Microsoft Word-এ ছবির ব্যাকগ্রাউন্ড সরানোর পদ্ধতি