يقدم هذا الفصل مقدمة حول فهرس 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" )