دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۵
  • فروردین

جلسه ۱۷ : Indexing در MongoDB

  • دسته‌بندی‌ها :
جلسه ۱۷ : Indexing در MongoDB
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ،هفدهمین جلسه از آموزش های دوره MongoDB را با آموزش Indexing در MongoDB شروع می کنیم.ایندکس‌ها در MongoDB ساختار‌های داده‌ی مخصوصی هستند که بخش کوچکی از مجموعه داده‌ها را به شکل ساده‌ای برای پیمایش، ذخیره می‌کنند. ایندکس، مقدار فیلد یا فیلدهای خاصی را که بعنوان ایندکس تعیین شده‌اند، ذخیره می‌کند.

      Indexing در MongoDB

      ایندکس‌ها در MongoDB تاثیر بسیاری در اجرای کوئری‌ها دارند.
      بدون ایندکس‌ها، MongoDB باید تمام سندهای یک مجموعه را برای انتخاب سندهایی که با عبارت کوئری مطابقت دارند، اسکن کند.
      این اسکن بسیار ناکارآمد است و در این حالت mongoDB به پردازش حجم بزرگی از داده‌ها نیاز دارد.

      متد ()ensureIndex

      برای ساخت ایندکس‌ها در MongoDB باید از متد ()ensureIndex استفاده کنید.

      سینتکس

      سینتکس پایه متد ()ensureIndex به شکل زیر است:
      مثال : 

      در اینجا، key نام فیلدی است که می‌خواهید بر روی آن ایندکس بسازید و مقدار ۱ برای مرتب سازی بصورت صعودی است.
      برای ساخت ایندکس‌ها در MongoDB با مرتب سازی نزولی باید از مقدار ۱- استفاده کنید.

      مثال

      مثال : 

      در متد ()ensureIndex برای ساخت ایندکس بر روی چندین فیلد، می‌توانید چندین فیلد را به آن پاس دهید:
      مثال : 

      متد ()ensureIndex  لیستی از گزینه ها را قبول می‌کند که در زیر آمده‌اند:

      پارامتر

      نوع داده

      توضیحات

       background بولین ایندکس را در پس زمینه می‌سازد،ساخت ایندکس، بقیه فعالیت‌های پایگاه داده را مسدود یا متوقف نمی‌کند. برای این کار مقدار را true تعیین کنید. مقدار پیش فرض false است.
        unique بولین یک ایندکس یکتا را می‌سازد. در این حالت مجموعه، اجازه درج سندهایی را که مقدار کلید یا کلیدهای آنها از قبل وجود دارند، نخواهد داد.

      برای ساخت یک ایندکس یکتا مقدار را true تعیین کنید. مقدار پیش فرض آن false است.

       name رشته نام ایندکس را مشخص می کند.

      اگر تعیین نشود MongoDB نامی را توسط الحاق نام فیلدها و ترتیب مرتب سازی تولید می‌کند.

       dropDups بولین ایندکسی را بر روی فایل می‌سازد که ممکن است مقادیر تکراری داشته باشد.

      MongoDB فقط اولین پیشامد از یک کلید را ایندکس می‌کند.

      همچنین همه سندهایی را که پیشامد ثانویه کلید هستند، از مجموعه حذف می‌کند.

      برای ساخت ایندکس یکتا مقدار را true تعیین کنید. مقدار پیش فرض آن false است.

       sparse بولین اگر مقدار آن true تعیین شود، ایندکس فقط به سندهایی با فیلد تعیین شده رجوع می‌کند.

      این ایندکس‌ها از فضای کمی استفاده کرده و در برخی موقعیت‌ها متفاوت رفتار می‌کنند. مقدار پیش فرض آن false است.

       expireAfterSeconds عددی تعیین مقداری برای ثانیه بعنوان TTL، برای کنترل کردن اینکه چه مدت MongoDB اسناد را در این مجموعه نگه دارد.
        v ورژن ایندکس  شماره‌ی نسخه ایندکس. نسخه‌ی ایندکس پیش فرض بستگی به نسخه mongod درحال اجرای هنگام ساخت ایندکس دارد.
       weights سند وزن یک عدد بین ۱ تا ۹۹۹۹۹ است و مشخص کننده‌ی اهمیت فیلد با دیگر فیلدهای ایندکس شده از نظر امتیاز است.
       default_language رشته برای یک ایندکس متنی، زبانی برای تعیین کردن لیست کلمات متوقف کننده و نقش هایی برای ریشه‌یابی و نشانه گذاری کلمات.
       language_override رشته در یک ایندکس متنی، تعیین کننده نام فیلد در سند که شامل زبانی برای لغو کردن زبان پیش فرض است. مقدار پیش فرض آن language است.

      کلام آخر

      همانطور که گفته شد Indexing در MongoDB بخش کوچکی از مجموعه داده‌ها را به شکل ساده‌ای برای پیمایش، ذخیره می‌کنند.امیدوارم از مطالب ذکر شده بهره کافی را برده باشید با ما همراه باشید تا در جلسه بعد، توابع جمعی در MongoDB را آموزش ببینید.

      QR:  جلسه ۱۷ : Indexing در MongoDB
      به اشتراک بگذارید