Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

mongodb

يتيح تنفيذ استعلامات SELECT على البيانات المخزنة على خادم MongoDB بعيد.

الصيغة

mongodb(host:port, database, collection, user, password, structure[, options[, oid_columns]]);
mongodb(uri, collection, structure[, oid_columns]);
mongodb(named_collection_name[, <arg>=<value>...]);

المعاملات

المعامل الوصف
host:port عنوان خادم MongoDB.
database اسم قاعدة البيانات البعيدة.
collection اسم المجموعة البعيدة.
user مستخدم MongoDB.
password كلمة مرور المستخدم.
structure المخطط الخاص بجدول ClickHouse الذي تُرجعه هذه الدالة.
options خيارات سلسلة اتصال MongoDB (معامل اختياري).
oid_columns قائمة مفصولة بفواصل بالأعمدة التي يجب التعامل معها باعتبارها oid في عبارة WHERE. القيمة الافتراضية هي _id.

يمكنك أيضًا الاتصال باستخدام URI:

mongodb(uri, collection, structure[, oid_columns])
المعامل الوصف
uri سلسلة الاتصال.
collection اسم المجموعة البعيدة.
structure المخطط الخاص بجدول ClickHouse الذي تُعيده هذه الدالة.
oid_columns قائمة مفصولة بفواصل بالأعمدة التي يجب التعامل معها كـ oid في عبارة WHERE. وتكون _id افتراضيًا.

يمكنك تمرير المعاملات باستخدام مجموعة مسماة:

mongodb(_named_collection_[, host][, port][, database][, collection][, user][, password][, structure][, options][, oid_columns])
-- or
mongodb(_named_collection_[, uri][, structure][, oid_columns])

القيمة المعادة

كائن جدول يحتوي على الأعمدة نفسها الموجودة في جدول MongoDB الأصلي.

أمثلة

لنفترض أن لدينا مجموعة باسم my_collection مُعرَّفة في قاعدة بيانات MongoDB باسم test، وأننا نُدرج مستندين:

db.createUser({user:"test_user",pwd:"password",roles:[{role:"readWrite",db:"test"}]})

db.createCollection("my_collection")

db.my_collection.insertOne(
    { log_type: "event", host: "120.5.33.9", command: "check-cpu-usage -w 75 -c 90" }
)

db.my_collection.insertOne(
    { log_type: "event", host: "120.5.33.4", command: "system-check"}
)

لنجرِ استعلامًا على المجموعة باستخدام الدالة الجدولية mongodb:

SELECT * FROM mongodb(
    '127.0.0.1:27017',
    'test',
    'my_collection',
    'test_user',
    'password',
    'log_type String, host String, command String',
    'connectTimeoutMS=10000'
)

أو:

SELECT * FROM mongodb(
    'mongodb://test_user:password@127.0.0.1:27017/test?connectionTimeoutMS=10000',
    'my_collection',
    'log_type String, host String, command String'
)

أو:

CREATE NAMED COLLECTION mongo_creds AS
       uri='mongodb://test_user:password@127.0.0.1:27017/test?connectionTimeoutMS=10000',
       collection='default_collection';

SELECT * FROM mongodb(
        mongo_creds,
        collection = 'my_collection',
        structure = 'log_type String, host String, command String'
)
Navigation