این صفحه تفاوتهای رفتاری بین Cloud Firestore و MongoDB را شرح میدهد.
برای مشاهدهی جزئیات ویژگیهای پشتیبانیشده بسته به نسخهی MongoDB، به لینک زیر مراجعه کنید:
- ویژگیهای پشتیبانیشده: ۸.۰
- ویژگیهای پشتیبانیشده: ۷.۰
- ویژگیهای پشتیبانیشده: ۶.۰
- ویژگیهای پشتیبانیشده: ۵.۰
اتصالات و پایگاههای داده
- هر اتصال به یک پایگاه داده Cloud Firestore محدود میشود.
- قبل از اتصال به پایگاه داده، باید آن را ایجاد کرد.
نامگذاری
تفاوتهای زیر در نامگذاری بخشهای مدل داده شما اعمال میشود.
مجموعهها
- نامهای مجموعه منطبق با
__.*__پشتیبانی نمیشوند.
فیلدها
- نام فیلدهایی که با
__.*__مطابقت دارند، پشتیبانی نمیشوند. - نام فیلدهای خالی پشتیبانی نمیشوند.
اسناد
- حداکثر حجم سند ۴ مگابایت است.
- حداکثر عمق تودرتوی فیلدها ۲۰ است. هر فیلد آرایهای و فیلد شیء-نوع، یک سطح به عمق کلی اضافه میکند.
_id
- فیلد
_idسطح بالا باید یک ObjectId، String، عدد صحیح ۶۴ بیتی، عدد صحیح ۳۲ بیتی، Double، Binary یا Object باشد. سایر انواع BSON پشتیبانی نمیشوند.
ارزشها
- انواع جاوا اسکریپت، نماد، 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پشتیبانی نمیکند. - مرحله
$facet$randیا$sampleدر مراحل ورودی پشتیبانی نمیکند زیرا یک عبارت فرار است.
مینویسد
- اسنادی که نام آنها با علامت دلار ("$") شروع میشود را نمیتوان با استفاده از ویژگی upsert در
updateیاfindAndModifyایجاد کرد. - Make sure your connection string includes
retryWrites=false(or use the method appropriate to your driver) to make sure the driver does not attempt to use this feature. Retryable writes are not supported.
تراکنشها
جداسازی اسنپشات و تراکنشهای قابل سریالسازی پشتیبانی میشوند.
به طور پیشفرض، تراکنشها از کنترلهای همزمانی خوشبینانه با جداسازی لحظهای (snapshot isolation) استفاده میکنند.
نگرانی را بخوانید
Cloud Firestore از دغدغههای
snapshot،majorityوlinearizableread پشتیبانی میکند. پیشفرضsnapshotاست که به جداسازی snapshot اشاره دارد.Use
linearizablewhen the application requires strict consistency and must prevent write skew anomalies. For other workloads,snapshotcan improve performance and reduce transaction contention.
نگرانی را بنویسید
- فقط
w: 'majority'وw: 1write concern پشتیبانی میشوند.
ترجیحات را بخوانید
- فقط دغدغههای
primary،primaryPreferred،primary_preferred،secondary_preferredوnearestread پشتیبانی میشوند.
شاخصها
- شاخصهای Wildcard پشتیبانی نمیشوند.
- Cloud Firestore به طور خودکار ایندکسی روی
_idایجاد نمیکند، اما تضمین میکند که مقادیر_idدر یک مجموعه منحصر به فرد هستند. - Indexes without multi-key enabled are not automatically changed to multi-key indexes based on write operations. You must enable multi-key when you create the index and the option cannot be changed.
خطاها
- کدهای خطا و پیامها ممکن است بین Cloud Firestore و MongoDB متفاوت باشند.
دستورات
تفاوتهای رفتاری زیر در مورد دستورات خاص اعمال میشود.
- دستوراتی که در جداول زیر ذکر نشدهاند، پشتیبانی نمیشوند.
-
commentتوسط اکثر دستورات پذیرفته میشود اما نادیده گرفته میشود. - تابع
maxTimeMSتوسط اکثر دستورات پذیرفته میشود، اما میتوان آن را نادیده گرفت.
پرسوجوها و نوشتهها
| فرماندهی | فیلدهای پشتیبانی نشده |
|---|---|
|
|
|
|
| (هیچکدام) |
| درون یک دستور بهروزرسانی:
|
| درون یک دستور حذف:
|
|
|
|
|
|
|
|
|
| (هیچکدام) |
| (هیچکدام) |
تراکنشها و جلسات
| فرماندهی | فیلدهای پشتیبانی نشده |
|---|---|
| (هیچکدام) |
| (هیچکدام) |
| (هیچکدام) |
اداره
| فرماندهی | فیلدهای پشتیبانی نشده | یادداشتها |
|---|---|---|
|
| در صورت وجود، filter باید خالی باشد. |
| (هیچکدام) | در صورت ارائه، authorizedCollections باید مقدار false داشته باشد. |
| (هیچکدام) | |
| (هیچکدام) | |
| (هیچکدام) | |
|
| این دستور بدون عملیات است. در صورت وجود، capped باید false باشد. |
قدم بعدی چیست؟
- اجرای شروع سریع: ایجاد یک پایگاه داده و اتصال به آن .
- برای فهرست کامل ویژگیهای پشتیبانیشده، به انواع داده، درایورها و ویژگیهای پشتیبانیشده MongoDB مراجعه کنید.