এই অধ্যায়টি MongoDB ইনডেক্স সুতরাং ভূমিকা দেয়। MYSQL এর মতো, MongoDB ও ইনডেক্স সমর্থন করে। তবে তার বিরোধী, MongoDB একই উদ্দেশ্যে স্ত্রুক্তুরের বেঁকে যেকোনো নেস্টেড ফিল্ডে ইনডেক্স যোগ করার সমর্থন করে, যার উদ্দেশ্য প্রশ্ন দক্ষতা বাড়ানো।

মঙ্গো ডিবি ইনডেক্সের প্রকার

একক ফিল্ড ইনডেক্স

MYSQL এর মতো, একটি সিঙ্গেল ফিল্ডের জন্য ইনডেক্স তৈরি করা

ফরম্যাট:

db.collection.createIndex( { field_name: sorting_direction(1 or -1) } )

নোট: সর্টিং ডিরেকশন 1 উপরে আসানোয়া ক্রম প্রকাশ করে এবং -1 নীচে অনুক্রম প্রকাশ করে।

উদাহরণ 1:

db.records.createIndex( { score: 1 } )

স্কোর ফিল্ডের জন্য একটি ইনডেক্স তৈরি করে।

উদাহরণ 2:

db.records.createIndex( { "location.state": 1 } )

নেস্টেড JSON ফিল্ড লোকেশন। রাষ্ট্রের জন্য একটি ইনডেক্স তৈরি করে।

কম্পাউন্ড ইনডেক্স

একই মানে MYSQL, একাধিক ফিল্ডকে একত্রিত করে ইনডেক্স তৈরি করা যায়, যা কম্পাউন্ড কুয়ারি গুড়িয়ে দেয়।

ফরম্যাট:

db.collection.createIndex( { <field1>: <type>, <field2>: <type2>, ... } )

উদাহরণ:

db.products.createIndex( { "item": 1, "stock": 1 } )

আইটেম এবং স্টক ফিল্ডের জন্য একটি কম্পাউন্ড ইনডেক্স তৈরি করে, উভয়ই উর্ধ্বমুখি অনুক্রমে (1 উর্ধ্বমুখি অনুক্রম প্রকাশ করে)।

টেক্সট ইনডেক্স (ফুল-টেক্সট ইনডেক্স)

টেক্সট ইনডেক্স (টেক্সট) প্রধানত পূর্ণাঙ্গ অনুসন্ধান সমর্থন করার জন্য ব্যবহৃত।

নোট: একটি সংগ্রহ কেবল একটি টেক্সট ইনডেক্স অনুমতি দেয়, তবে একটি টেক্সট ইনডেক্স অনেকগুলি ফিল্ড সম্মিলিত করে তৈরি করা যেতে পারে।

উদাহরণ:

db.stores.createIndex( { name: "text", description: "text" } )

নাম এবং বিবরণ ফিল্ডের জন্য একটি পূর্ণাঙ্গ টেক্সট ইনডেক্স তৈরি করে।

নোট: বিস্তারিত জানতে, দয়া করে সম্পূর্ণ পাঠ ইনডেক্স বিভাগ দেখুন।

স্পেশাল ইনডেক্স (GEO ইনডেক্স)

প্রায়মর্যাদা সমীপোজন তথ্যসংক্রান্ত প্রশ্নসমূহ সমর্থন করার জন্য ব্যবহৃত হয়, মূলত দুই ধরণের ইনডেক্স সমর্থন করে: 2dsphere এবং 2d। বিস্তারিত জানতে, দয়া করে জিওস্পেশাল কুয়ারি বিভাগ দেখুন।

ইনডেক্স মুছে ফেলা

কোলেকশনে সমস্ত ইনডেক্স তালিকা করতে:

db.pets.getIndexes()

pets কালেকশন থেকে catIdx ইনডেক্স মুছে ফেলতে:

db.pets.dropIndex( "catIdx" )