آموزش نمایه ها در MongoEngine

3 سال پیش

آموزش نمایه ها در MongoEngine

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش نمایه ها در MongoEngine خواهیم پرداخت.

پیشنهاد ویژه : پکیج آموزش پایتون

یک مجموعه نمایه شده باعث پردازش سریع کوئری ها می شود. به طور پیش فرض، هر مجموعه به طور خودکار در قسمت _id نمایه می شود. علاوه بر این ، می توانید در یک یا چند قسمت فهرست ایجاد کنید.

با استفاده از قطب نما، ما می توانیم به راحتی نمایه را بسازیم. همانطور که در شکل زیر نشان داده شده است ، روی دکمه CREATE INDEX در زبانه Indexes کلیک کنید

Indexes
همانطور که نشان داده شده یک جعبه گفتگو ظاهر می شود. نام نمایه ، فیلدی را که باید در آن نمایه شود ، ترتیب فهرست (صعودی یا نزولی) و گزینه های دیگر را انتخاب کنید.

Create Indexes
هنگام استفاده از MongoEngine ، با تعیین کلید “indexes” در متا دیکشنری تعریف کلاس Document ، شاخص ها ایجاد می شوند.

ویژگی شاخص ها لیستی از فیلدها است. در مثال زیر ، ما می خواهیم اسناد موجود در مجموعه دانشجویان با توجه به قسمت نام ، نمایه سازی شوند.

from mongoengine import *
con=connect('mydata')
class student(Document):
   name=StringField(required=True)
   course=StringField()
   meta = {'indexes':['name']}
   
s1=student()
s1.name='Avinash'
s1.course='DataScience'
s1.save()
s2=student()
s2.name='Anita'
s2.course='WebDesign'
s2.save()

 

به طور پیش فرض، ترتیب نمایه سازی صعودی است. سفارش ممکن است با مقدمه “+” برای صعودی یا “-” برای ترتیب نزولی مشخص شود.

برای ایجاد فهرست ترکیبی ، از یک دسته نام فیلد استفاده کنید ، به طور اختیاری نماد + یا – برای نشان دادن ترتیب مرتب شده است.

در مثال زیر ، کلاس سند دانشجویی شامل تعریف فهرست ترکیبی بر روی نام و دوره (یادداشت – نماد پیشوند در زمینه دوره است که به معنای این است که فهرست به ترتیب نام صعودی و به ترتیب نزولی ساخته شده است).

from mongoengine import *
con=connect('mydata')

class student(Document):
   name=StringField(required=True)
   course=StringField()
   meta = {'indexes':[('name','-course')]}

s1=student()
s1.name='Avinash'
s1.course='DataScience'
s1.save()
s2=student()
s2.name='Anita'
s2.course='WebDesign'
s2.save()

 

MongoDB Compass شاخص های زیر را نشان می دهد –

Value of Indexes

مقدار “نمایه ها” ممکن است فرهنگ لغت گزینه های مختلف به شرح زیر باشد –

fields زمینه های نمایه سازی.
cls اگر allow_inheritance روشن است ، می توانید پیکربندی کنید که آیا در index باید قسمت _cls به طور خودکار اضافه شود.
sparse  شاخص  کم باید پاکنده باشد
unique شاخص باید منحصر به فرد باشد.
expireAfterSeconds با تنظیم زمان در چند ثانیه ، داده های مجموعه را به طور خودکار منقضی می کند
name به شما امکان می دهد نامی برای فهرست مشخص کنید
collation اجازه ایجاد شاخص های حساس به حروف بزرگ را می دهد

به عنوان مثال زیر در قسمت نام فهرست ایجاد می شود که پس از ۳۶۰۰ ثانیه منقضی می شود.

from mongoengine import *
con=connect('mydata')

class student(Document):
   name=StringField(required=True)
   course=StringField()
   meta = {'indexes':[{
            'fields': ['name'],
            'expireAfterSeconds': 3600
           }
    ]
}

 

برای مشخص کردن فهرست متن، نام پیشوند زمینه با علامت “$” و برای شاخص hashed ، از “#” به عنوان پیشوند استفاده کنید.

فهرست های مشخص شده به طور خودکار با اضافه شدن اسناد در مجموعه ایجاد می شوند. برای غیرفعال کردن ایجاد خودکار ، “auto_create_index” را روی False در ویژگی meta تنظیم کنید.

ما متد () list_indexes با کلاس Document داریم که لیستی از فهرست های موجود را نمایش می دهد.

print (student.list_indexes())

[[('name', 1)], [('_id', 1)]]

 

برای ایجاد فهرست در فیلدی که در فرهنگ لغت متا نیست ، از روش ()create_index  استفاده کنید. کد زیر فهرست در زمینه دوره ایجاد می کند –

class student(Document):
name=StringField(required=True)
course=StringField()
meta = {'indexes':[{
          'fields': ['name'],
          'expireAfterSeconds': 3600
        }
]}
student.create_index(['course'])

 

منبع.

 

لیست جلسات قبل آموزش MongoEngine

  1. آموزش MongoEngine
  2. آموزش MongoDB در MongoEngine
  3. آموزش قطب نما MongoDB در MongoEngine
  4. آموزش نگاشت کننده اسناد شی در MongoEngine
  5. آموزش نصب MongoEngine
  6. آموزش اتصال به پایگاه داده MongoDB در MongoEngine
  7. آموزش کلاس Document در MongoEngine
  8. آموزش طرح پویا در MongoEngine
  9. آموزش کلاس Field در MongoEngine
  10. آموزش افزودن / حذف سند در MongoEngine
  11. آموزش استعلام پایگاه داده در MongoEngine
  12. آموزش فیلترها در MongoEngine
  13. آموزش عملگرهای Query در MongoEngine
  14. آموزش روش های QuerySet در MongoEngine
  15. آموزش مرتب سازی در MongoEngine
  16. آموزش مجموعه کوئری های سفارشی در MongoEngine
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه