ينطبق ذلك على إصدار Cloud Firestore Enterprise فقط. |
توضّح هذه الصفحة الاختلافات السلوكية بين Cloud Firestore المتوافق مع MongoDB وMongoDB.
للاطّلاع على تفاصيل الميزات المتوافقة حسب إصدار MongoDB، يُرجى الرجوع إلى:
- الميزات المتوافقة: الإصدار 8.0
- الميزات المتوافقة: الإصدار 7.0
- الميزات المتوافقة: الإصدار 6.0
- الميزات المتوافقة: الإصدار 5.0
عمليات الربط وقواعد البيانات
- يقتصر كل اتصال على قاعدة بيانات واحدة متوافقة مع MongoDB في Cloud Firestore.
- يجب إنشاء قاعدة بيانات قبل الاتصال بها.
التسمية
تنطبق الاختلافات التالية على تسمية أجزاء من نموذج البيانات.
المجموعات
- لا تتوفّر أسماء المجموعات التي تتطابق مع
__.*__
.
الحقول
- لا يمكن استخدام أسماء الحقول التي تتطابق مع
__.*__
. - لا يمكن ترك أسماء الحقول فارغة.
المستندات
- الحد الأقصى لحجم المستند هو 4 ميغابايت.
- يبلغ الحد الأقصى لمستوى الدمج للحقول 20. يضيف كل حقل من النوع Array وObject مستوى واحدًا إلى العمق الإجمالي.
_id
- يجب أن يكون المستند
_id
(الحقل الأعلى مستوى) ObjectId أو سلسلة أو عددًا صحيحًا 64 بت. لا تتوافق مع أنواع BSON الأخرى. - لا تتوفّر السلسلة الفارغة ("") والقيمة 0 ذات 64 بت (0L).
القيم
- لا تتوافق أنواع BSON التالية: JavaScript وSymbol وDBPointer وUndefined.
تاريخ
- يجب أن تندرج قيم التاريخ ضمن
[0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z]
.
Decimal128
- يتم تحويل القيم
NaN
واللانهاية الموجبة واللانهاية السالبة إلى شكل أساسي عند الكتابة. - لا تتوفّر العمليات الحسابية على Decimal128.
مزدوج
- يتم تحويل قيم
NaN
إلى شكلها الأساسي عند الكتابة.
تعبير عادي
- يجب أن تكون خيارات التعبير العادي صالحة ("i" أو "m" أو "s" أو "u" أو "x") ويجب تقديمها بترتيب أبجدي بدون تكرار.
طلبات البحث
- لا يتطابق ترتيب الفرز الطبيعي (طلبات البحث بدون فرز صريح) مع ترتيب الإدراج أو الترتيب حسب
_id
تصاعديًا.
التجميعات
- تقتصر عمليات التجميع على 250 مرحلة.
- لا تتوفّر المرحلتان
$merge
و$out
. راجِع قسم الأوامر للحصول على قائمة كاملة بالمراحل والعوامل المتوافقة. - تقتصر مرحلة
$lookup
على تحديدforeignField
في_id
.
يكتب
- لا يمكن إنشاء مستندات تبدأ أسماؤها بعلامة الدولار ($) باستخدام ميزة الإدراج/التعديل في
update
أوfindAndModify
. - تأكَّد من أنّ سلسلة الاتصال تتضمّن
retryWrites=false
(أو استخدِم الطريقة المناسبة لبرنامج التشغيل) للتأكّد من أنّ برنامج التشغيل لا يحاول استخدام هذه الميزة. لا تتوفّر عمليات الكتابة القابلة لإعادة المحاولة.
المعاملات
يتوافق مع الفصل بين اللقطات والمعاملات القابلة للتسلسل.
تستخدم المعاملات تلقائيًا عناصر التحكّم المتزامنة المتفائلة مع عزل اللقطات.
قراءة بيانات المشاكل
يتوافق Cloud Firestore مع MongoDB مع مستويات
snapshot
وmajority
وlinearizable
من إعدادات قراءة البيانات. القيمة التلقائية هيsnapshot
، وتشير إلى عزل اللقطات.استخدِم
linearizable
عندما يتطلّب التطبيق اتساقًا صارمًا ويجب أن يمنع حدوث أي تشوّهات في الكتابة. بالنسبة إلى أحمال العمل الأخرى، يمكن أن يؤدي استخدامsnapshot
إلى تحسين الأداء والحدّ من تعارض المعاملات.
كتابة مشكلة
- يُسمح فقط باستخدام خيارَي
w: 'majority'
وw: 1
.
إعدادات القراءة المفضّلة
- يتم توفير خيارات القراءة
primary
وprimaryPreferred
وprimary_preferred
وsecondary_preferred
وnearest
فقط.
الفهارس
- لا يمكن استخدام فهارس أحرف البدل.
- لا تنشئ خدمة Cloud Firestore المتوافقة مع MongoDB تلقائيًا فهرسًا في
_id
، ولكنها تضمن أن تكون قيم_id
فريدة ضمن مجموعة. - لا يتم تلقائيًا تغيير الفهارس التي لم يتم تفعيل ميزة المفاتيح المتعددة فيها إلى فهارس مفاتيح متعددة استنادًا إلى عمليات الكتابة. يجب تفعيل المفتاح المتعدد عند إنشاء الفهرس، ولا يمكن تغيير هذا الخيار.
الأخطاء
- قد تختلف رموز الخطأ ورسائله بين Cloud Firestore المتوافق مع MongoDB وMongoDB.
الأوامر
تنطبق الاختلافات التالية في السلوك على أوامر معيّنة.
- إنّ الأوامر غير المُدرَجة في الجداول التالية غير متوافقة.
- تقبل معظم الأوامر القيمة
maxTimeMS
ولكن قد يتم تجاهلها.
الاستعلامات وعمليات الكتابة
Command | الحقول غير المتوافقة |
---|---|
|
|
|
|
|
|
|
|
|
ضمن عبارة حذف:
|
|
|
|
|
|
|
|
|
|
(القائمة فارغة) |
المعاملات والجلسات
Command | الحقول غير المتوافقة |
---|---|
|
|
|
|
|
(القائمة فارغة) |
الإدارة
Command | الحقول غير المتوافقة | Notes |
---|---|---|
|
|
يجب أن يكون filter فارغًا إذا تم توفيره. |
|
|
يجب أن تكون قيمة authorizedCollections هي false إذا تم توفيرها. |
|
|
|
|
|
هذا الأمر لا يؤدي إلى أي عملية. يجب أن تكون قيمة capped خطأ إذا تم توفيرها. |
الخطوات التالية
- نفِّذ البدء السريع: إنشاء قاعدة بيانات والاتصال بها.
- للحصول على قائمة كاملة بالميزات المتوافقة، يُرجى الاطّلاع على أنواع البيانات وبرامج التشغيل والميزات المتوافقة مع MongoDB.