انواع ایندکس در مونگو - sparse ، TTL ، unique ، partial

سلام دوستان

شب شما بخیر

توی این جلسه از آشنایی با دیتابیس مونگو، میخوایم در مورد ایندکس ها کمی صحبت کنم واستون...

سریع میخوام برم سر اصل مطلب:

1- ساده ترین دستور برای ایجاد یک ایندکس:

db.myTable.createIndex({title:1});

دستور فوق باعث ساخت ایندکس، روی فیلد title می‌شود، و عدد 1 نشان دهنده ساخت ایندکس به صورت صعودی است.

برای ساخت درخت ایندکس به صورت نزولی عدد -1 را جایگزین میکنیم.

db.myTable.createIndex({title:-1});

2- اسپارس ایندکس

این نوع ایندکس باعث می‌شود تا مونگو فقط روی آیتم هایی که فیلد مورد نظر در آنها وجود دارند ساخته شود، حتی اگر مقدارشان null باشد.

برای تعریف اسپارس ایندکس هم به صورت زیر عمل میکنیم:

db.myTable.createIndex({title:1},{sparse:true});
انواع ایندکس در مونگو
انواع ایندکس در مونگو



3- پارشیال ایندکس

بر خلاف اسپارس ایندکس ها، که فقط شرط {وجود داشتن فیلد} اهمیت داشت، در پارشیال ایندکس شما میتوانید انواع شرط ها را برای ایندکس گذاری تعریف کنید.

به ع نوان مثال دستور زیر روی آیتمهایی ایندکس میکذارد که فیلد age آنها بزرگتر 25 است.

db.myTable.createIndex({ &quottitle&quot: -1 }, {
partialFilterExpression: { &quotage: { $gt: 25 } }
})

4- یونیک ایندکس

ایندکس هایی هستند که از ورود داده تکراری جلوگیری میکنند.

db.myTable.createIndex({ &quottitle&quot: -1 }, { unique:true })


5- ایندکس های زمان دار

این نوع ایندکس ها معروف به TTL Index هستند.

یعنی آیتم ها بعد از مدت زمان خاصی پاک میشن.

به مثال زیر توجه کنید:

db.myTable.createIndex({ &quotcreatedAt&quot: 1 }, {
expireAfterSeconds: 3600
})

در مثال بالا، آیتم هایی که 3600 ثانیه، از تاریخ ایجادشان گذشته است، از داخل جدول پاک می شوند.

(به شرط اینکه تاریخ ایجاد آیتم، داخل فیلد createdAt ذخیره شده باشد.)

این خلاصه ای از انواع ایندکس گذاری در دیتابیس مونگو هست.

البته انواع دیگری از ایندکس گذاری وجود داره که در فیلم آموزشی زیر، به اون موراد اشاره کردم.

انواع ایندکس در مونگو - sparse ، TTL ، unique ، partial index