یہ باب MongoDB انڈیکسز کا تعارف پیش کرتا ہے۔ MYSQL کی طرح، MongoDB بھی انڈیکسز کا ساتھ دیتا ہے۔ فرق یہ ہے کہ MongoDB JSON ڈیٹا سٹرکچر کے کسی بھی نیسٹڈ فیلڈ میں انڈیکسز شامل کرنے کا اختیار فراہم کرتا ہے، جس کا مقصد سرچ کی کارکردگی میں بہتری ہے۔
MongoDB انڈیکسز کے اقسام
Single Field Index
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 فیلڈ location.state کے لئے ایک انڈیکس بناتا ہے۔
Compound Index
MYSQL کی طرح، متعدد فیلڈ کو ملا کر ایک انڈیکس بنایا جا سکتا ہے، ملازمتی کی کوائیریز کی رفتار کو تیز کرتا ہے۔ فارمیٹ:
db.collection.createIndex( { <field1>: <type>, <field2>: <type2>, ... } )
مثال:
db.products.createIndex( { "item": 1, "stock": 1 } )
item اور stock فیلڈز کے لئے ایک انڈیکس بناتا ہے، دونوں میں اُبھرتے ہوئے ترتیب (1 اُبھرتا ہوا ترتیب ظاہر کرتا ہے)۔
Text Index (Full-text Index)
مفاد: ٹیکسٹ انڈیکس (text) کو عموماً پورے متن کی تلاش کو سپورٹ کرنے کے لئے استعمال کیا جاتا ہے۔
نوٹ: کلیکشن صرف ایک ٹیکسٹ انڈیکس کی اجازت دیتا ہے، لیکن ایک ٹیکسٹ انڈیکس کئی فیلڈز شامل کرسکتا ہے۔
مثال:
db.stores.createIndex( { name: "text", description: "text" } )
name اور description فیلڈز کے لئے ایک ٹیکسٹ پورے متن کا انڈیکس بناتا ہے۔
نوٹ: تفصیلات کے لئے، براہ کرم Full Text Index section کا رجوع کریں۔
Spatial Index (GEO Index)
عموماً جغرافیائی معلوماتی سوالات کی حمایت کرنے کے لئے استعمال ہوتا ہے، جو بنیادی طور پر دو اقسام کے انڈیکس کو سپورٹ کرتا ہے: 2dsphere اور 2d۔ تفصیلات کے لئے براہ کرم Geospatial Query section کا رجوع کریں۔
انڈیکسز کو حذف کرنا
کسی کالیکشن میں تمام انڈیکسز کی فہرست کرنے کے لئے:
db.pets.getIndexes()
pets کالیکشن سے catIdx انڈیکس کو حذف کرنے کے لئے:
db.pets.dropIndex( "catIdx" )