يقدم هذا الفصل مقدمة حول فهرس MongoDB. بالمثل ل MYSQL ، يدعم MongoDB أيضًا الفهارس. الفارق هو أن MongoDB يدعم إضافة فهارس إلى أي حقل مدمج في هيكل JSON ، بنفس الغرض من تحسين كفاءة الاستعلام.
أنواع فهارس MongoDB
فهرس الحقل الفردي
بالمثل ل MYSQL ، إنشاء فهرس لحقل واحد
الصيغة:
db.collection.createIndex( { اسم_الحقل: اتجاه_الفرز(1 أو -1) } )
ملاحظة: يمثل اتجاه الفرز 1 الترتيب التصاعدي ، ويمثل -1 الترتيب التنازلي.
المثال 1:
db.records.createIndex( { score: 1 } )
ينشئ فهرس لحقل النقاط.
المثال 2:
db.records.createIndex( { "location.state": 1 } )
ينشئ فهرسًا لحقل JSON المضمّن location.state.
فهرس مركب
بالمثل ل MYSQL ، يمكن دمج عدة حقول لإنشاء فهرس ، مما يعزز سرعة الاستعلام المركب.
الصيغة:
db.collection.createIndex( { <حقل1>: <نوع>, <حقل2>: <نوع2>, ... } )
المثال:
db.products.createIndex( { "item": 1, "stock": 1 } )
ينشئ فهرسًا مركبًا لحقول العنصر والمخزون ، كلاهما في ترتيب تصاعدي (1 يمثل الترتيب التصاعدي).
فهرس النص (فهرس النص الكامل)
يُستخدم فهرس النص (النص) بشكل أساسي لدعم البحث النصي الكامل.
ملاحظة: تسمح المجموعة بفهرس نص واحد فقط ، ولكن فهرس النص يمكن أن تشمل عدة حقول.
المثال:
db.stores.createIndex( { name: "text", description: "text" } )
ينشئ فهرس نص كامل لحقول الاسم والوصف.
ملاحظة: لمزيد من التفاصيل ، يرجى الرجوع إلى قسم فهرس النص الكامل.
فهرس المكاني (فهرس GEO)
يستخدم أساسًا لدعم الاستعلامات ذات الصلة بالمعلومات الجغرافية ، ويدعم بشكل أساسي نوعي فهارس: 2dsphere و 2d. لمزيد من التفاصيل ، يرجى الرجوع إلى قسم الاستعلام المكاني.
حذف الفهارس
لعرض جميع الفهارس في مجموعة:
db.pets.getIndexes()
لحذف فهرس catIdx من مجموعة الحيوانات الأليفة:
db.pets.dropIndex( "catIdx" )