در این فصل، ایندکسهای MongoDB معرفی میشوند. مانند MYSQL، MongoDB هم ایندکسها را پشتیبانی میکند. اما تفاوت آن است که MongoDB امکان افزودن ایندکس به هر فیلد تو درختی ساختار JSON را دارد، با هدف بهبود کارایی کوئری.
انواع ایندکسهای 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" } )
ایجاد یک ایندکس متنی کامل برای فیلدهای نام و توضیحات.
توجه: برای جزئیات، لطفاً به بخش قسمت جستجوی متنی کامل مراجعه کنید.
ایندکس مکانی (ایندکس جغرافیایی)
ارائه پشتیبانی اصلی از کوئریهای مرتبط با اطلاعات جغرافیایی، اصولاً از دو نوع اصلی ایندکس: 2dsphere و 2d پشتیبانی میکند. برای جزئیات، لطفاً به بخش مدلسازی جغرافیایی مراجعه کنید.
حذف ایندکسها
برای فهرست کردن تمام ایندکسها در یک مجموعه:
db.pets.getIndexes()
برای حذف ایندکس catIdx از مجموعه pets:
db.pets.dropIndex( "catIdx" )