الانتقال إلى المحتوى الرئيسي
محرك MongoDB هو محرك جدول للقراءة فقط يتيح قراءة البيانات من مجموعة بعيدة في MongoDB. لا تُدعَم إلا خوادم MongoDB بالإصدار v3.6+. كما أن Seed list(mongodb+srv) غير مدعومة بعد.

إنشاء جدول

معلمات المحرك
إذا كنت تستخدم خدمة MongoDB Atlas السحابية، فيمكن الحصول على عنوان URL للاتصال من خيار ‘Atlas SQL’. Seed list(mongodb**+srv**) غير مدعومة بعد، ولكن ستُضاف في الإصدارات المستقبلية.
بدلاً من ذلك، يمكنك تمرير URI:
معلمات المحرّك

مطابقة الأنواع

إذا لم يتم العثور على المفتاح في مستند MongoDB (على سبيل المثال، إذا كان اسم العمود غير مطابق)، فستُدرج القيمة الافتراضية أو NULL (إذا كان العمود من النوع Nullable).

OID

إذا كنت تريد التعامل مع String على أنه oid في عبارة WHERE، فما عليك سوى وضع اسم العمود في الوسيط الأخير من محرك الجدول. قد يكون ذلك ضروريًا عند الاستعلام عن سجل بواسطة العمود _id، إذ يكون نوعه افتراضيًا oid في MongoDB. إذا كان الحقل _id في الجدول من نوع آخر، مثل uuid، فستحتاج إلى تعيين oid_columns إلى قيمة فارغة، وإلا فستُستخدَم القيمة الافتراضية لهذه المعلمة، وهي _id.
افتراضيًا، لا يُعامَل إلا _id باعتباره عمود oid.
في هذه الحالة، ستكون النتيجة 0، لأن ClickHouse لا يعلم أن another_oid_column من النوع oid، لذا لنصحح ذلك:

العبارات المدعومة

لا تُدعَم إلا الاستعلامات التي تحتوي على expressions بسيطة (على سبيل المثال، WHERE field = <constant> ORDER BY field2 LIMIT <constant>). تُترجَم هذه expressions إلى query language الخاصة بـ MongoDB وتُنفَّذ على الخادم. يمكنك تعطيل جميع هذه القيود باستخدام mongodb_throw_on_unsupported_query. في هذه الحالة، يحاول ClickHouse تحويل query قدر الإمكان، لكن قد يؤدي ذلك إلى إجراء فحص كامل للـ table وتنفيذ processing على جانب ClickHouse.
من الأفضل دائمًا تحديد نوع القيمة الحرفية صراحةً لأن Mongo يتطلب filters صارمة من حيث النوع. على سبيل المثال، إذا كنت تريد التصفية حسب Date:
لن ينجح هذا لأن Mongo لن يحوّل السلسلة النصية إلى Date، لذا ستحتاج إلى تحويلها يدويًا:
ينطبق هذا على Date وDate32 وDateTime وBool وUUID.

مثال على الاستخدام

على افتراض أنّ مجموعة البيانات sample_mflix محمّلة في MongoDB أنشئ جدولًا في ClickHouse يتيح قراءة البيانات من مجموعة في MongoDB:
Query
Query
Response
Query
Response
Query
Response

استكشاف الأخطاء وإصلاحها

يمكنك الاطلاع على استعلام MongoDB الذي تم إنشاؤه في السجلات على مستوى DEBUG. يمكن العثور على تفاصيل التنفيذ في وثائق mongocxx وmongoc.
آخر تعديل في ٢٥ يونيو ٢٠٢٦