این صفحه یک روش Mongosh را مستند می کند. این مستندات برای دستورات پایگاه داده یا درایورهای خاص زبان مانند Node. js. نیست.
برای دستور پایگاه داده ، به دستور CreateIndexes مراجعه کنید.
برای درایورهای MongoDB API ، به مستندات درایور MongoDB خاص زبان مراجعه کنید.
برای مستندات Legacy Mongo Shell ، به اسناد مربوط به نسخه مربوط به سرور MongoDB مربوطه مراجعه کنید:
شاخص هایی را در مجموعه ها ایجاد می کند.
برای به حداقل رساندن تأثیر ایجاد یک شاخص در مجموعه های ماکت و خوشه های Sharded ، از یک روش ساخت شاخص نورد استفاده کنید ، همانطور که در ساخت شاخص های نورد در مجموعه های ماکت شرح داده شده است.
سندی که شامل جفت زمینه و مقدار است که در آن قسمت کلید فهرست است و مقدار آن نوع شاخص را برای آن قسمت توصیف می کند. برای یک شاخص صعودی در یک قسمت ، مقدار 1 را مشخص کنید. برای شاخص نزولی ، مقدا ر-1 را مشخص کنید. ستاره ( *) یک نام شاخص معتبر نیست.
MongoDB از چندین نوع شاخص مختلف از جمله فهرست متن ، ژئوسپاتیال و شاخص های هشدار پشتیبانی می کند. برای اطلاعات بیشتر به انواع فهرست مراجعه کنید.
تغییر در نسخه 4. 2: فهرست های Wildcard MongoDB 4. 2 از بارهای کاری پشتیبانی می کنند که در آن کاربران در برابر زمینه های سفارشی یا انواع زیادی از زمینه ها در یک مجموعه پرس و جو می کنند:
برای ایجاد یک شاخص Wildcard در همه زمینه ها و زیرزمین ها در یک سند ، مشخص کنید< "$**" : 1 >به عنوان کلید فهرست. شما نمی توانید هنگام ایجاد شاخص Wildcard ، یک کلید شاخص نزولی را مشخص کنید.
همچنین می توانید با استفاده از پارامتر اختیاری WildCardProjection ، زمینه های خاص و زیرزمین های آنها را از فهرست فهرست یا حذف کنید.
فهرست های Wildcard به طور پیش فرض زمینه _id را حذف می کنند. برای درج کردن قسمت _id در فهرست Wildcard ، شما باید صریحاً آن را در سند WildcardProjection بگنجانید:
به استثنای صریح و صریح شامل زمینه _id ، شما نمی توانید اظهارات گنجاندن و محرومیت را در سند WildcardProjection ترکیب کنید.
شما می توانید با مشخص کردن مسیر کامل آن قسمت به عنوان کلید فهرست ، یک فهرست Wildcard را در یک قسمت خاص و زیرمجموعه های آن ایجاد کنید و "$ **" را به مسیر اضافه کنید:
شما نمی توانید هنگام ایجاد شاخص Wildcard ، یک کلید شاخص نزولی را مشخص کنید.
نحو شاخص Wildcard خاص مسیر با گزینه WildcardProjection ناسازگار است. شما نمی توانید اجزاء یا محرومیت های اضافی را در مسیر مشخص شده مشخص کنید.
کلید فهرست Wildcard باید از یکی از نحوهای ذکر شده در بالا استفاده کند. به عنوان مثال ، شما نمی توانید یک کلید شاخص مرکب را مشخص کنید. برای مستندات کامل تر در مورد شاخص های Wildcard ، از جمله محدودیت در ایجاد آنها ، به محدودیت های شاخص Wildcard مراجعه کنید.
برای ایجاد شاخص های Wildcard باید 4. 2 سازگار با Mongod باشد. برای راهنمایی در مورد تنظیم FCV ، به مجموعه ویژگی سازگاری ویژگی در استقرار MongoDB 6. 0 مراجعه کنید.
برای نمونه هایی از ایجاد شاخص Wildcard ، به یک شاخص Wildcard مراجعه کنید.
اختیاری. سندی که شامل مجموعه ای از گزینه ها است که کنترل ایجاد شاخص را کنترل می کند. گزینه های جزئیات را مشاهده کنید.
اختیاری. حداقل تعداد ماکت رأی دهی به داده ها (یعنی Quorum Commit) ، از جمله موارد اصلی ، که باید یک شاخص موفق را قبل از مشخصات اولیه گزارش دهد ، شاخص ها را به عنوان آماده ارائه می دهد. عضو "رأی" هر عضو مجموعه ای از ماکت است که در آن اعضای [n] . Votes از 0 بیشتر است.
از مقادیر زیر پشتیبانی می کند:
"رأی دهندگان" - همه ماکت رأی دهی به داده ها اعضای (پیش فرض) را تعیین می کنند.
"اکثریت" - اکثریت ساده ای از ماکت رأی دهی به داده ها ، اعضای خود را تعیین کردند.
- تعداد مشخصی از ماکت رأی دهی به داده ها.
0 - رفتار رأی گیری Quorum را غیرفعال می کند. اعضا ساخت شاخص را به طور همزمان شروع می کنند اما قبل از تکمیل ساخت فهرست ، رای نمی دهند یا منتظر سهمیه نیستند. اگر ساخت یک فهرست را با یک سهمیه متعهد 0 شروع کنید ، بعداً نمی توانید با استفاده از SetIndexCommitQuorum ، Quorum Commit را تغییر دهید.
جدید در نسخه 4. 4.
گزینه ها
سند گزینه ها شامل مجموعه ای از گزینه ها است که ایجاد شاخص را کنترل می کند. انواع مختلف شاخص می تواند گزینه های اضافی خاصی برای آن نوع داشته باشد.
گزینه های چند شاخص را می توان در همان سند مشخص کرد. با این حال ، اگر چندین اسناد گزینه را مشخص کنید ، عملکرد db. collection. createIndex () شکست خواهد خورد.
db. collection. createIndex () زیر را در نظر بگیرید:
اگر مشخصات گزینه ها به اسناد مختلفی مانند این تقسیم شده بود:< unique: true >, < sparse: true, expireAfterSeconds: 3600 >عملیات ایجاد شاخص شکست خورده است.
گزینه هایی برای انواع فهرست
گزینه های زیر برای همه انواع فهرست در دسترس است مگر اینکه در موارد دیگری مشخص شده باشد:
اختیاری. یک شاخص منحصر به فرد ایجاد می کند تا این مجموعه درج یا به روزرسانی اسنادی را که در آن مقدار کلید فهرست با یک مقدار موجود در فهرست مطابقت دارد ، قبول نکند.
برای ایجاد یک شاخص منحصر به فرد درست مشخص کنید. مقدار پیش فرض غلط است .
این گزینه برای شاخص های هشده در دسترس نیست.
اختیاری. نام فهرست. اگر نامشخص باشد ، MongoDB با هماهنگی نام قسمتهای فهرست بندی شده و ترتیب مرتب سازی ، نام شاخصی ایجاد می کند.
اختیاری. در صورت مشخص شدن ، این فهرست فقط به اسنادی که مطابق با بیان فیلتر است ، ارجاع می دهد. برای اطلاعات بیشتر به فهرست های جزئی مراجعه کنید.
بیان فیلتر می تواند شامل موارد زیر باشد:
عبارات برابری (یعنی زمینه: ارزش یا استفاده از اپراتور EQ $) ،
می توانید گزینه PartialFilterExpression را برای همه انواع شاخص MongoDB مشخص کنید.
اختیاری. در صورت صحت ، این فهرست فقط اسناد را با قسمت مشخص شده ارجاع می دهد. این شاخص ها از فضای کمتری استفاده می کنند اما در برخی شرایط (به ویژه انواع) متفاوت رفتار می کنند. مقدار پیش فرض غلط است . برای اطلاعات بیشتر به فهرست های پراکنده مراجعه کنید.
انواع شاخص زیر به طور پیش فرض پراکنده است و این گزینه را نادیده می گیرد:
برای یک شاخص مرکب که شامل کلید (های) شاخص 2dsphere به همراه کلیدهای انواع دیگر است ، فقط قسمتهای شاخص 2dsphere تعیین می کنند که آیا این فهرست یک سند را ارجاع می دهد یا خیر.
شاخص های جزئی سوپراست از عملکرد شاخص های پراکنده را ارائه می دهند. مگر اینکه برنامه شما یک نیاز خاص نداشته باشد ، به جای شاخص های پراکنده از شاخص های جزئی استفاده کنید.
اختیاری. یک مقدار ، در ثانیه ، به عنوان زمانی برای زندگی (TTL) مشخص می کند تا کنترل کند که چه مدت MongoDB اسناد را در این مجموعه حفظ می کند. این گزینه فقط در مورد شاخص های TTL اعمال می شود. برای اطلاعات بیشتر به داده های منقضی شده از مجموعه ها با تنظیم TTL مراجعه کنید.
اگر از شاخص های TTL ایجاد شده قبل از MongoDB 5. 0 استفاده می کنید ، یا اگر می خواهید داده های ایجاد شده در MongDB 5. 0 را با نصب قبل از 5. 0 همگام سازی کنید ، به فهرست های پیکربندی شده با استفاده از NAN برای جلوگیری از مشکلات اشتباه.
اختیاری. پرچمی که تعیین می کند این شاخص از برنامه ریز پرس و جو پنهان است یا خیر. یک شاخص پنهان به عنوان بخشی از انتخاب برنامه پرس و جو ارزیابی نمی شود.
پیش فرض نادرست است.
برای استفاده از گزینه پنهان ، باید از ویژگی های سازگاری با 4. 4 یا بیشتر استفاده کنید. با این حال ، پس از پنهان شدن ، این شاخص حتی با سازگاری با ویژگی های سازنده بر روی 4. 2 در باینری های MongoDB 4. 4 پنهان باقی می ماند.
جدید در نسخه 4. 4.
اختیاری. به کاربران امکان می دهد هنگام ایجاد یک شاخص ، موتور ذخیره سازی را بر اساس هر شاخص پیکربندی کنند.
گزینه StorageEngine باید فرم زیر را بگیرد:
گزینه های پیکربندی موتور ذخیره سازی مشخص شده هنگام ایجاد شاخص ها ، در حین تکثیر به Oplog اعتبار داده شده و برای پشتیبانی از مجموعه های ماکت با اعضایی که از موتورهای مختلف ذخیره سازی استفاده می کنند ، به Oplog وارد می شوند.
گزینه برای جمع آوری
اختیاری. جمع بندی برای شاخص را مشخص می کند.
Collation به کاربران امکان می دهد قوانین خاص زبان را برای مقایسه رشته ، مانند قوانین مربوط به نامه های حروف و برجسته ، مشخص کنند.
اگر در سطح مجموعه یک جمع بندی را مشخص کرده اید ، پس از آن:
اگر هنگام ایجاد شاخص ، یک جمع بندی را مشخص نکنید ، MongoDB با جمع بندی پیش فرض مجموعه ، شاخص را ایجاد می کند.
اگر هنگام ایجاد شاخص ، یک جمع را مشخص کنید ، MongoDB با جمع بندی مشخص ، شاخص را ایجاد می کند.
گزینه Collation نحو زیر را دارد:
هنگام مشخص کردن جمع آوری ، قسمت محلی اجباری است. تمام زمینه های جمع آوری دیگر اختیاری هستند. برای توضیحات مربوط به زمینه ها ، به سند Collation مراجعه کنید.
شاخص های زیر فقط از مقایسه باینری ساده پشتیبانی می کنند و از جمع آوری پشتیبانی نمی کنند:
To create a text , a 2d , or a geoHaystack index on a collection that has a non-simple collation, you must explicitly specify >هنگام ایجاد شاخص.
جمع آوری و استفاده از فهرست
اگر در سطح مجموعه یک جمع بندی را مشخص کرده اید ، پس از آن:
اگر هنگام ایجاد شاخص ، یک جمع بندی را مشخص نکنید ، MongoDB با جمع بندی پیش فرض مجموعه ، شاخص را ایجاد می کند.
اگر هنگام ایجاد شاخص ، یک جمع را مشخص کنید ، MongoDB با جمع بندی مشخص ، شاخص را ایجاد می کند.
با مشخص کردن قدرت جمع آوری 1 یا 2 ، می توانید یک شاخص حساس را ایجاد کنید. شاخص با قدرت جمع آوری 1 هر دو دیاکریتیک و مورد حساس است.
می توانید چندین شاخص را در همان کلید (ها) با مجموعه های مختلف ایجاد کنید. برای ایجاد شاخص ها با همان الگوی کلیدی اما مجموعه های مختلف ، باید نامهای شاخص منحصر به فرد را تهیه کنید.
برای استفاده از یک شاخص برای مقایسه رشته ، یک عملیات نیز باید همان جمع را مشخص کند. یعنی ، یک شاخص با یک جمع بندی نمی تواند از عملیاتی که مقایسه رشته در قسمتهای فهرست بندی شده را انجام می دهد ، در صورتی که این عملیات یک مجموعه متفاوت را انجام دهد ، پشتیبانی کند.
به عنوان مثال ، مجموعه MyColl دارای یک فهرست در رده رشته رشته با محل جمع آوری "FR" است.
عملیات پرس و جو زیر ، که همان مجموعه را به عنوان شاخص مشخص می کند ، می تواند از فهرست استفاده کند:
با این حال ، عملیات پرس و جو زیر ، که به طور پیش فرض از کلکاتور باینری "ساده" استفاده می کند ، نمی تواند از فهرست استفاده کند:
برای یک شاخص مرکب که در آن کلیدهای پیشوند شاخص رشته ، آرایه و اسناد تعبیه شده نیستند ، عملیاتی که یک جمع بندی متفاوت را مشخص می کند ، هنوز هم می تواند از این فهرست برای پشتیبانی از مقایسه در کلیدهای پیشوند شاخص استفاده کند.
به عنوان مثال ، مجموعه MyColl دارای یک شاخص مرکب در نمره و قیمت زمینه های عددی و قیمت رشته رشته است. این شاخص با محل جمع آوری "FR" برای مقایسه رشته ها ایجاد شده است:
عملیات زیر ، که از جمع بندی باینری "ساده" برای مقایسه رشته ها استفاده می کنند ، می توانند از فهرست استفاده کنند:
عملیات زیر ، که از جمع بندی باینری "ساده" برای مقایسه رشته ها در قسمت دسته بندی فهرست بندی شده استفاده می کند ، می تواند از این شاخص برای تحقق فقط نمره استفاده کند: 5 قسمت از پرس و جو:
گزینه هایی برای فهرست های متن
گزینه های زیر فقط برای شاخص های متن موجود است:
اختیاری. برای شاخص های متن ، سندی که حاوی جفت های میدانی و وزن است. وزن یک عدد صحیح از 1 تا 99. 999 است و از نظر نمره اهمیت میدان را نسبت به سایر زمینه های فهرست بندی شده نشان می دهد. می توانید وزنه ها را برای برخی یا تمام زمینه های فهرست بندی شده مشخص کنید. برای تنظیم نمرات ، نتایج جستجوی کنترل را با وزنه ها مشاهده کنید. مقدار پیش فرض 1 است.
با شروع از MongoDB 5. 0 ، گزینه Teights فقط برای شاخص های متن مجاز است.
اختیاری. برای فهرست های متن ، زبانی که لیست کلمات متوقف و قوانین مربوط به STEMMER و TOKENIZER را تعیین می کند. برای اطلاعات و مثال های بیشتر ، به زبانهای جستجوی متن برای زبانهای موجود مراجعه کرده و یک زبان برای فهرست متن را مشخص کنید. مقدار پیش فرض انگلیسی است.
اختیاری. برای فهرست های متن ، نام این زمینه ، در اسناد مجموعه ، که حاوی زبان Override برای سند است. مقدار پیش فرض زبان است. برای مثال از هر زمینه ای برای مشخص کردن زبان برای یک سند استفاده کنید.
اختیاری. شماره نسخه فهرست متن. کاربران می توانند از این گزینه برای غلبه بر شماره نسخه پیش فرض استفاده کنند.
برای نسخه های موجود ، به نسخه ها مراجعه کنید.
گزینه هایی برای شاخص های 2dsphere
گزینه زیر فقط برای شاخص های 2dsphere در دسترس است:
اختیاری. شماره نسخه 2dsphere index. کاربران می توانند از این گزینه برای غلبه بر شماره نسخه پیش فرض استفاده کنند.
برای نسخه های موجود ، به نسخه ها مراجعه کنید.
گزینه هایی برای شاخص های 2D
گزینه های زیر فقط برای شاخص های 2D موجود است:
اختیاری. برای شاخص های 2D ، تعداد دقت مقدار Geohash ذخیره شده داده های مکان.
مقدار بیت ها از 1 تا 32 فراگیر است. مقدار پیش فرض 26 است.
اختیاری. برای شاخص های 2D ، مرز فراگیر پایین برای مقادیر طول و عرض جغرافیایی. مقدار پیش فر ض-180. 0 است.
اختیاری. برای شاخص های 2D ، مرز فراگیر برای مقادیر طول جغرافیایی و عرض جغرافیایی. مقدار پیش فرض 180. 0 است.
گزینه هایی برای شاخص های Geohaystack
گزینه زیر فقط برای شاخص های Geohaystack در دسترس است:
برای شاخص های Geohaystack ، تعداد واحدهایی را برای گروه بندی مقادیر مکان مشخص کنید. یعنی گروه در همان سطل مقادیر مکان که در تعداد مشخصی از واحدها به یکدیگر هستند.
مقدار باید از 0 بیشتر باشد.
حذف شده در MongoDB 5. 0
MongoDB 5. 0 شاخص Geohaystack مستهلک شده و فرمان Geosearch را حذف می کند. به جای آن از یک شاخص 2D با $ geonear یا یکی از اپراتورهای پشتیبانی جغرافیایی پشتیبانی شده استفاده کنید.
به روزرسانی نمونه MongoDB خود به 5. 0 و تنظیم FeatureCoctibilityVersion به 5. 0 ، هر گونه شاخص های Geohaystack از قبل موجود را حذف می کند.
گزینه هایی برای شاخص های کارت Wildcard
گزینه زیر فقط برای فهرست های Wildcard در دسترس است:
اختیاری. به کاربران امکان می دهد مسیرهای میدانی خاص را از فهرست Wildcard با استفاده از این فهرست حذف یا حذف کنند< "$**" : 1>الگوی کلیدیاین گزینه فقط در صورتی که ایجاد یک فهرست کارت Wildcard در تمام زمینه های اسناد معتبر باشد ، معتبر است. در صورت ایجاد یک شاخص Wildcard در یک مسیر خاص و زیرزمین های آن ، به عنوان مثال ، نمی توانید این گزینه را مشخص کنید.
گزینه WildcardProjection فرم زیر را می گیرد:
می تواند هر یک از موارد زیر باشد:
1 یا درست است که زمینه را در فهرست Wildcard گنجانده است.
0 یا FALSE برای حذف این زمینه از فهرست Wildcard.
فهرست های Wildcard به طور پیش فرض زمینه _id را حذف می کنند. برای درج کردن قسمت _id در فهرست Wildcard ، شما باید صریحاً آن را در سند WildcardProjection بگنجانید:
به استثنای صریح و صریح شامل زمینه _id ، شما نمی توانید اظهارات گنجاندن و محرومیت را در سند WildcardProjection ترکیب کنید.
رفتار
همزمانی
در نسخه 4. 2 تغییر کرده است.
MongoDB از یک فرآیند ساخت بهینه شده استفاده می کند که در شروع و پایان ساخت شاخص ، قفل اختصاصی را در مجموعه مشخص شده به دست می آورد و دارای یک قفل اختصاصی در مجموعه مشخص شده است. تمام عملیات بعدی این مجموعه باید صبر کنند تا CreateIndex () قفل انحصاری را منتشر کند. CreateIndex () اجازه می دهد تا عملیات خواندن و نوشتن را در طول اکثر ساختمانهای شاخص انجام دهد.
برای کسب اطلاعات بیشتر در مورد رفتار قفل CreateIndex () ، به ساختهای فهرست در مجموعه های پرجمعیت مراجعه کنید.
بازآفرینی یک فهرست موجود
اگر با DB. Collection. CreateIndex () برای شاخصی که از قبل وجود دارد ، تماس می گیرید ، MongoDB شاخص را بازآفرینی نمی کند.
گزینه های شاخص
گزینه های عدم برخورد و غیر پنهان
به استثنای گزینه Collation ، اگر یک شاخص را با یک مجموعه از گزینه های شاخص ایجاد کنید و سپس سعی کنید همان شاخص را بازآفرینی کنید اما با گزینه های مختلف شاخص ، MongoDB نه گزینه ها را تغییر می دهد و شاخص را بازآفرینی نمی کند.
گزینه پنهان را می توان بدون ریزش و بازآفرینی شاخص تغییر داد. گزینه پنهان را ببینید.
برای تغییر گزینه های شاخص دیگر ، شاخص موجود را با db. collection. dropindex () قبل از اجرای db. collection. createindex () با گزینه های جدید رها کنید.
گزینه
می توانید چندین شاخص را در همان کلید (ها) با مجموعه های مختلف ایجاد کنید. برای ایجاد شاخص ها با همان الگوی کلیدی اما مجموعه های مختلف ، باید نامهای شاخص منحصر به فرد را تهیه کنید.
گزینه پنهان
جدید در نسخه 4. 4.
برای مخفی کردن یک فهرست ، شما باید از ویژگی های سازگاری با 4. 4 یا بیشتر استفاده کنید. با این حال ، پس از پنهان شدن ، این شاخص حتی با سازگاری با ویژگی های سازنده بر روی 4. 2 در باینری های MongoDB 4. 4 پنهان باقی می ماند.
برای مخفی کردن یا جدا کردن شاخص های موجود ، می توانید از روش های زیر Mongosh استفاده کنید:
برای تغییر گزینه پنهان برای یک فهرست به True ، از روش db. collection. hideindex () استفاده کنید:
برای تغییر گزینه پنهان برای یک فهرست به False ، از روش db. collection. unhideindex () استفاده کنید:
همچنین ببینید:
معاملات
در نسخه 4. 4 تغییر کرده است.
اگر از MongoDB 4. 4 شروع کنید ، می توانید در صورت عدم معامله نوشتن متقاطع ، مجموعه ها و ایندکس ها را در یک معامله چند مستند ایجاد کنید.
برای استفاده از db. collection. createIndex () در یک معامله ، معامله باید از نگرانی خوانده شده "محلی" استفاده کند. اگر سطح نگرانی خواندن را غیر از "محلی" مشخص کنید ، معامله با شکست مواجه می شود.
همچنین ببینید:
مثال ها
یک شاخص صعودی در یک قسمت واحد ایجاد کنید
مثال زیر یک شاخص صعودی در زمینه سفارش ایجاد می کند.
اگر سند کلیدها بیش از یک قسمت را مشخص کند ، آنگاه CreateIndex () یک شاخص مرکب ایجاد می کند.
یک فهرست در یک قسمت های مختلف ایجاد کنید
مثال زیر یک شاخص مرکب در قسمت OrderDate (به ترتیب صعودی) و قسمت zipcode (به ترتیب نزولی) ایجاد می کند.
تغییر در نسخه 4. 4: با شروع از MongoDB 4. 4 ، شاخص های مرکب می توانند شامل یک قسمت هشدهی واحد باشند. شاخص های هشدهی مرکب نیاز به سازگاری با سازگاری با 4. 4 دارند.
مثال زیر یک شاخص مرکب در قسمت دولتی (به ترتیب صعودی) و قسمت Zipcode (هش) ایجاد می کند:
ترتیب زمینه ها در یک شاخص مرکب برای پشتیبانی از عملیات مرتب سازی () با استفاده از شاخص مهم است.
همچنین ببینید:
با جمع بندی مشخص شده شاخص ها را ایجاد کنید
مثال زیر شاخصی به نام رده_فر ایجاد می کند. مثال ، شاخص را با جمع آوری ایجاد می کند که محلی FR و مقایسه قدرت 2 را مشخص می کند:
مثال زیر یک شاخص مرکب به نام date_categor_fr با یک جمع ایجاد می کند. این جمع فقط مربوط به کلیدهای شاخص با مقادیر رشته است.
این جمع در مورد کلیدهای فهرست بندی شده که مقادیر آنها رشته است ، اعمال می شود.
برای پرس و جو یا عملیات مرتب سازی بر روی کلیدهای فهرست بندی شده که از همان قوانین جمع آوری استفاده می کنند ، MongoDB می تواند از این فهرست استفاده کند. برای جزئیات بیشتر ، به جمع آوری و استفاده از فهرست مراجعه کنید.
یک شاخص کارت وحشی ایجاد کنید
جدید در نسخه 4. 2.
برای ایجاد شاخص های Wildcard باید 4. 2 سازگار با Mongod باشد. برای راهنمایی در مورد تنظیم FCV ، به مجموعه ویژگی سازگاری ویژگی در استقرار MongoDB 6. 0 مراجعه کنید.
فهرست های Wildcard به طور پیش فرض زمینه _id را حذف می کنند. برای درج کردن قسمت _id در فهرست Wildcard ، شما باید صریحاً آن را در سند WildcardProjection بگنجانید:
به استثنای صریح و صریح شامل زمینه _id ، شما نمی توانید اظهارات گنجاندن و محرومیت را در سند WildcardProjection ترکیب کنید.
شاخص های Wildcard از انواع یا خصوصیات شاخص زیر پشتیبانی نمی کنند:
شاخص های کارت ویزیت با شاخص های متن Wildcard متمایز و ناسازگار هستند. شاخص های Wildcard نمی توانند با استفاده از اپراتور Text $ از نمایش داده شد.
برای مستندات کامل در مورد محدودیت های شاخص Wildcard ، به محدودیت های شاخص Wildcard مراجعه کنید.
برای مستندات کامل در مورد فهرست های Wildcard ، به فهرست های Wildcard مراجعه کنید.
لیست های زیر نمونه هایی از ایجاد شاخص Wildcard:
در یک مسیر میدانی یک شاخص Wildcard ایجاد کنید
مجموعه ای از محصولات را در نظر بگیرید. قسمت Product_Attributes می تواند حاوی زمینه های تو در تو در تو در تو باشد ، از جمله اسناد و آرایه های تعبیه شده:
عملیات زیر یک شاخص Wildcard در قسمت Product_attributes ایجاد می کند:
با استفاده از این شاخص Wildcard ، MongoDB تمام مقادیر مقیاس Product_attributes را فهرست می کند. اگر این زمینه یک سند یا آرایه تو در تو باشد ، شاخص Wildcard به سند/آرایه باز می گردد و تمام زمینه های مقیاس موجود در سند/آرایه را فهرست می کند.
شاخص Wildcard می تواند از نمایش داده های تک میدانی دلخواه در Product_attributes یا یکی از زمینه های تو در تو پشتیبانی کند:
نحو شاخص Wildcard خاص مسیر با گزینه WildcardProjection ناسازگار است. برای اطلاعات بیشتر به اسناد پارامتر مراجعه کنید.
در تمام مسیرهای میدانی یک شاخص Wildcard ایجاد کنید
مجموعه ای از محصولات را در نظر بگیرید. قسمت Product_Attributes می تواند حاوی زمینه های تو در تو در تو در تو باشد ، از جمله اسناد و آرایه های تعبیه شده:
عملیات زیر یک شاخص Wildcard را در تمام زمینه های مقیاس (به استثنای قسمت _id) ایجاد می کند:
با استفاده از این شاخص Wildcard ، MongoDB تمام زمینه های مقیاس پذیر را برای هر سند موجود در مجموعه فهرست می کند. اگر یک قسمت خاص یک سند یا آرایه تو در تو باشد ، شاخص Wildcard به سند/آرایه باز می گردد و تمام زمینه های مقیاس موجود در سند/آرایه را فهرست می کند.
شاخص ایجاد شده می تواند از هر زمینه دلخواه در اسناد موجود در مجموعه پشتیبانی کند:
فهرست های Wildcard به طور پیش فرض زمینه _id را حذف می کنند. برای گنجاندن قسمت _id در فهرست Wildcard ، باید صریحاً آن را در سند WildcardProjection بگنجانید. برای اطلاعات بیشتر به مستندات پارامتر مراجعه کنید.
شامل فیلدهای خاص در پوشش فهرست عام
مجموعه ای از محصولات را در نظر بگیرید. قسمت Product_Attributes می تواند حاوی زمینه های تو در تو در تو در تو باشد ، از جمله اسناد و آرایه های تعبیه شده:
عملیات زیر یک نمایه wildcard ایجاد می کند و از گزینه wildcardProjection استفاده می کند تا فقط مقادیر اسکالر فیلدهای product_attributes. elements و product_attributes. resistance را در فهرست قرار دهد.
در حالی که الگوی کلید "$**" همه فیلدهای سند را پوشش می دهد، فیلد wildcardProjection ایندکس را فقط به فیلدهای موجود محدود می کند. برای مستندات کامل در مورد wildcardProjection، به گزینه های فهرست های wildcard مراجعه کنید.
اگر یک فیلد یک سند یا آرایه تو در تو باشد، فهرست عام به سند/آرایه باز می گردد و تمام فیلدهای اسکالر در سند/آرایه را فهرست می کند.
ایندکس ایجاد شده می تواند از پرس و جوها در هر فیلد اسکالر موجود در wildcardProjection پشتیبانی کند:
نمایه های Wildcard از اختلاط عبارات گنجاندن و خروج در سند wildcardProjection پشتیبانی نمی کنند، مگر در مواردی که صریحاً شامل فیلد _id باشد. برای اطلاعات بیشتر در مورد wildcardProjection، به مستندات پارامتر مراجعه کنید.
فیلدهای خاص را از پوشش نمایه Wildcard حذف کنید
مجموعه ای از محصولات را در نظر بگیرید. قسمت Product_Attributes می تواند حاوی زمینه های تو در تو در تو در تو باشد ، از جمله اسناد و آرایه های تعبیه شده:
عملیات زیر یک نمایه wildcard ایجاد می کند و از سند wildcardProjection برای نمایه سازی تمام فیلدهای اسکالر برای هر سند در مجموعه استفاده می کند، به استثنای فیلدهای product_attributes. elements و product_attributes. resistance:
در حالی که الگوی کلید "$**" تمام فیلدهای سند را پوشش می دهد، فیلد wildcardProjection فیلدهای مشخص شده را از فهرست حذف می کند. برای مستندات کامل در مورد wildcardProjection، به گزینه های فهرست های wildcard مراجعه کنید.
اگر یک فیلد یک سند یا آرایه تو در تو باشد، فهرست عام به سند/آرایه باز می گردد و تمام فیلدهای اسکالر در سند/آرایه را فهرست می کند.
ایندکس ایجاد شده می تواند از پرس و جوها در هر زمینه اسکالر پشتیبانی کند، به جز مواردی که توسط wildcardProjection حذف شده اند:
نمایه های Wildcard از اختلاط عبارات گنجاندن و خروج در سند wildcardProjection پشتیبانی نمی کنند، مگر در مواردی که صریحاً شامل فیلد _id باشد. برای اطلاعات بیشتر در مورد wildcardProjection، به مستندات پارامتر مراجعه کنید.
ایجاد ایندکس با Commit Quorum
به ویژگی CompatibilityVersion 4. 4+ نیاز دارد
هر Mongod در مجموعه ماکت یا خوشه های Sharded باید دارای ویژگی سازگاری با حداقل 4. 4 باشد تا شاخص ها به طور همزمان در سراسر اعضای مجموعه ماکت شروع کنند.
MongoDB 4. 4 در حال اجرا در حال اجرا با سازگاری: "4. 2" قبل از تکرار ساخت شاخص به ثانویه ، شاخص های اولیه را در اولیه ایجاد می کند.
با شروع MongoDB 4. 4 ، Index بر روی یک مجموعه ماکت یا خوشه های Sharded همزمان در کلیه اعضای مجموعه ماکت های دارای داده های دارای داده ساخته می شود. برای خوشه های Sharded ، ساخت شاخص فقط در قسمتهای حاوی داده هایی برای فهرست بندی شده در مجموعه رخ می دهد. اصلی نیاز به حداقل تعداد اعضای رأی دهی به داده ها (یعنی مرتکب سهمیه) ، از جمله خود ، که باید قبل از علامت گذاری این شاخص به عنوان آماده برای استفاده ، ساخت را تکمیل کند. برای اطلاعات بیشتر به ساختهای فهرست در محیط های تکرار شده مراجعه کنید.
پارامتر CommentQuorum را به عملیات CreateIndex () مشخص کنید تا حداقل تعداد اعضای رای دهنده داده های دارای داده (یعنی Commit Courum) را تعیین کنید ، از جمله اصلی ، که باید ساخت شاخص را قبل از اصلی ترین شاخص ها به عنوان آماده انجام دهد. QUORUM پیش فرض متعهد ، رأی دهنده ها است ، یا همه ماکت رأی دهی به داده های دارای داده ها را تعیین می کند.
عملیات زیر یک شاخص با سهمیه "اکثریت" یا اکثریت ساده اعضای رای دهنده داده ها ایجاد می کند:
شاخص اصلی مارک ها فقط پس از اکثریت ساده اعضای رأی دهی به داده ها "رأی" برای ارتکاب ساخت فهرست ، آماده می شوند. برای کسب اطلاعات بیشتر در مورد ساخت فهرست و روند رای گیری ، به ساختهای فهرست در محیط های تکرار شده مراجعه کنید.
اطلاعات اضافی
بخش شاخص های این دفترچه راهنما برای مستندات کامل فهرست ها و فهرست بندی در MongoDB.
db. collection. getIndexes () برای مشاهده مشخصات فهرست های موجود برای یک مجموعه.
مبانی تجارت فارکس...
ما را در سایت مبانی تجارت فارکس دنبال می کنید
برچسب :
نویسنده : سحر دولتشاهی
بازدید : 53
تاريخ : سه
شنبه
23 اسفند
1401 ساعت: 13:22