آموزش نمایه ها در MongoEngine
آموزش نمایه ها در MongoEngine
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش نمایه ها در MongoEngine خواهیم پرداخت.
پیشنهاد ویژه : پکیج آموزش پایتون
یک مجموعه نمایه شده باعث پردازش سریع کوئری ها می شود. به طور پیش فرض، هر مجموعه به طور خودکار در قسمت _id نمایه می شود. علاوه بر این ، می توانید در یک یا چند قسمت فهرست ایجاد کنید.
با استفاده از قطب نما، ما می توانیم به راحتی نمایه را بسازیم. همانطور که در شکل زیر نشان داده شده است ، روی دکمه CREATE INDEX در زبانه Indexes کلیک کنید
همانطور که نشان داده شده یک جعبه گفتگو ظاهر می شود. نام نمایه ، فیلدی را که باید در آن نمایه شود ، ترتیب فهرست (صعودی یا نزولی) و گزینه های دیگر را انتخاب کنید.
هنگام استفاده از MongoEngine ، با تعیین کلید “indexes” در متا دیکشنری تعریف کلاس Document ، شاخص ها ایجاد می شوند.
ویژگی شاخص ها لیستی از فیلدها است. در مثال زیر ، ما می خواهیم اسناد موجود در مجموعه دانشجویان با توجه به قسمت نام ، نمایه سازی شوند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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() |
به طور پیش فرض، ترتیب نمایه سازی صعودی است. سفارش ممکن است با مقدمه “+” برای صعودی یا “-” برای ترتیب نزولی مشخص شود.
برای ایجاد فهرست ترکیبی ، از یک دسته نام فیلد استفاده کنید ، به طور اختیاری نماد + یا – برای نشان دادن ترتیب مرتب شده است.
در مثال زیر ، کلاس سند دانشجویی شامل تعریف فهرست ترکیبی بر روی نام و دوره (یادداشت – نماد پیشوند در زمینه دوره است که به معنای این است که فهرست به ترتیب نام صعودی و به ترتیب نزولی ساخته شده است).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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 شاخص های زیر را نشان می دهد –
مقدار “نمایه ها” ممکن است فرهنگ لغت گزینه های مختلف به شرح زیر باشد –
fields | زمینه های نمایه سازی. |
cls | اگر allow_inheritance روشن است ، می توانید پیکربندی کنید که آیا در index باید قسمت _cls به طور خودکار اضافه شود. |
sparse | شاخص کم باید پاکنده باشد |
unique | شاخص باید منحصر به فرد باشد. |
expireAfterSeconds | با تنظیم زمان در چند ثانیه ، داده های مجموعه را به طور خودکار منقضی می کند |
name | به شما امکان می دهد نامی برای فهرست مشخص کنید |
collation | اجازه ایجاد شاخص های حساس به حروف بزرگ را می دهد |
به عنوان مثال زیر در قسمت نام فهرست ایجاد می شود که پس از 3600 ثانیه منقضی می شود.
1 2 3 4 5 6 7 8 9 10 11 12 |
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 داریم که لیستی از فهرست های موجود را نمایش می دهد.
1 2 3 |
print (student.list_indexes()) [[('name', 1)], [('_id', 1)]] |
برای ایجاد فهرست در فیلدی که در فرهنگ لغت متا نیست ، از روش ()create_index استفاده کنید. کد زیر فهرست در زمینه دوره ایجاد می کند –
1 2 3 4 5 6 7 8 9 |
class student(Document): name=StringField(required=True) course=StringField() meta = {'indexes':[{ 'fields': ['name'], 'expireAfterSeconds': 3600 } ]} student.create_index(['course']) |
لیست جلسات قبل آموزش MongoEngine
- آموزش MongoEngine
- آموزش MongoDB در MongoEngine
- آموزش قطب نما MongoDB در MongoEngine
- آموزش نگاشت کننده اسناد شی در MongoEngine
- آموزش نصب MongoEngine
- آموزش اتصال به پایگاه داده MongoDB در MongoEngine
- آموزش کلاس Document در MongoEngine
- آموزش طرح پویا در MongoEngine
- آموزش کلاس Field در MongoEngine
- آموزش افزودن / حذف سند در MongoEngine
- آموزش استعلام پایگاه داده در MongoEngine
- آموزش فیلترها در MongoEngine
- آموزش عملگرهای Query در MongoEngine
- آموزش روش های QuerySet در MongoEngine
- آموزش مرتب سازی در MongoEngine
- آموزش مجموعه کوئری های سفارشی در MongoEngine
دیدگاه شما