| فقط مربوط به نسخه Cloud Firestore Enterprise است. |
این صفحه تفاوتهای رفتاری بین Cloud Firestore با سازگاری MongoDB و MongoDB را شرح میدهد.
برای مشاهدهی جزئیات ویژگیهای پشتیبانیشده بسته به نسخهی MongoDB، به لینک زیر مراجعه کنید:
- ویژگیهای پشتیبانیشده: ۸.۰
- ویژگیهای پشتیبانیشده: ۷.۰
- ویژگیهای پشتیبانیشده: ۶.۰
- ویژگیهای پشتیبانیشده: ۵.۰
اتصالات و پایگاههای داده
- هر اتصال به یک Cloud Firestore واحد با پایگاه داده سازگار با MongoDB محدود میشود.
- قبل از اتصال به پایگاه داده، باید آن را ایجاد کرد.
نامگذاری
تفاوتهای زیر در نامگذاری بخشهای مدل داده شما اعمال میشود.
مجموعهها
- نامهای مجموعه منطبق با
__.*__پشتیبانی نمیشوند.
فیلدها
- نام فیلدهایی که با
__.*__مطابقت دارند، پشتیبانی نمیشوند. - نام فیلدهای خالی پشتیبانی نمیشوند.
اسناد
- حداکثر حجم سند ۴ مگابایت است.
- حداکثر عمق تودرتوی فیلدها ۲۰ است. هر فیلد آرایهای و فیلد شیء-نوع، یک سطح به عمق کلی اضافه میکند.
_id
-
_idسند (فیلد سطح بالا) باید یک شناسه شیء (ObjectId)، رشته (String) یا عدد صحیح ۶۴ بیتی باشد. سایر انواع BSON پشتیبانی نمیشوند. - رشته خالی ("") و 64 بیتی 0 (0L) پشتیبانی نمیشوند.
ارزشها
- انواع جاوا اسکریپت، نماد، DBPointer و BSON تعریف نشده پشتیبانی نمیشوند.
تاریخ
- مقادیر تاریخ باید در
[0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z]قرار گیرند.
دهدهی128
- مقادیر
NaN، مثبت بینهایت و منفی بینهایت هنگام نوشتن، استانداردسازی میشوند. - عملیات حسابی روی Decimal128 پشتیبانی نمیشوند.
دو برابر
- مقادیر
NaNهنگام نوشتن، استانداردسازی میشوند.
عبارت منظم
- گزینههای عبارت منظم باید معتبر باشند ("i"، "m"، "s"، "u" یا "x") و به ترتیب حروف الفبا و بدون تکرار ارائه شوند.
پرسوجوها
- ترتیب مرتبسازی طبیعی (پرسوجوهای بدون مرتبسازی صریح) با ترتیب درج یا مرتبسازی بر اساس
_idصعودی مطابقت ندارد.
تجمیعها
- تجمعات به ۲۵۰ مرحله محدود میشوند.
- مراحل
$mergeو$outپشتیبانی نمیشوند. برای مشاهده لیست کامل مراحل و عملگرهای پشتیبانی شده، به بخش دستورات مراجعه کنید. - مرحله
$lookupاز فیلدهایletوpipelineپشتیبانی نمیکند.
مینویسد
- اسنادی که نام آنها با علامت دلار ("$") شروع میشود را نمیتوان با استفاده از ویژگی upsert در
updateیاfindAndModifyایجاد کرد. - مطمئن شوید که رشته اتصال شما شامل
retryWrites=falseباشد (یا از روشی مناسب برای درایور خود استفاده کنید) تا مطمئن شوید که درایور سعی در استفاده از این ویژگی ندارد. نوشتنهای قابل امتحان مجدد پشتیبانی نمیشوند.
تراکنشها
جداسازی اسنپشات و تراکنشهای قابل سریالسازی پشتیبانی میشوند.
به طور پیشفرض، تراکنشها از کنترلهای همزمانی خوشبینانه با جداسازی لحظهای (snapshot isolation) استفاده میکنند.
نگرانی را بخوانید
Cloud Firestore با سازگاری با MongoDB از دغدغههای
snapshot،majorityوlinearizableread پشتیبانی میکند. پیشفرضsnapshotاست که به جداسازی snapshot اشاره دارد.زمانی که برنامه به سازگاری دقیق نیاز دارد و باید از ناهنجاریهای انحراف در نوشتن جلوگیری کند،
linearizableاستفاده کنید. برای سایر حجمهای کاری،snapshotمیتواند عملکرد را بهبود بخشد و تداخل تراکنشها را کاهش دهد.
نگرانی را بنویسید
- فقط
w: 'majority'وw: 1write concern پشتیبانی میشوند.
ترجیحات را بخوانید
- فقط دغدغههای
primary،primaryPreferred،primary_preferred،secondary_preferredوnearestread پشتیبانی میشوند.
شاخصها
- شاخصهای Wildcard پشتیبانی نمیشوند.
- Cloud Firestore با سازگاری با MongoDB به طور خودکار ایندکسی روی
_idایجاد نمیکند، اما تضمین میکند که مقادیر_idدر یک مجموعه منحصر به فرد باشند. - ایندکسهایی که قابلیت چندکلید فعال ندارند، بر اساس عملیات نوشتن، به طور خودکار به ایندکسهای چندکلید تغییر نمیکنند. شما باید هنگام ایجاد ایندکس، قابلیت چندکلید را فعال کنید و این گزینه قابل تغییر نیست.
خطاها
- کدهای خطا و پیامها ممکن است بین Cloud Firestore با سازگاری MongoDB و MongoDB متفاوت باشند.
دستورات
تفاوتهای رفتاری زیر در مورد دستورات خاص اعمال میشود.
- دستوراتی که در جداول زیر ذکر نشدهاند، پشتیبانی نمیشوند.
-
maxTimeMSتوسط اکثر دستورات پذیرفته میشود اما میتوان آن را نادیده گرفت.
پرسوجوها و نوشتهها
| فرمان | فیلدهای پشتیبانی نشده |
|---|---|
|
|
|
|
|
|
|
|
|
درون یک دستور حذف:
|
|
|
|
|
|
|
|
|
| (هیچکدام) |
تراکنشها و جلسات
| فرمان | فیلدهای پشتیبانی نشده |
|---|---|
|
|
|
|
| (هیچکدام) |
اداره
| فرمان | فیلدهای پشتیبانی نشده | یادداشتها |
|---|---|---|
|
| در صورت وجود، filter باید خالی باشد. |
|
| در صورت ارائه، authorizedCollections باید مقدار false داشته باشد. |
|
| |
|
| این دستور بدون عملیات است. در صورت وجود، capped باید false باشد. |
قدم بعدی چیست؟
- اجرای شروع سریع: ایجاد یک پایگاه داده و اتصال به آن .
- برای فهرست کامل ویژگیهای پشتیبانیشده، به انواع داده، درایورها و ویژگیهای پشتیبانیشده MongoDB مراجعه کنید.