Перейти к основному содержанию
Движок MongoDB — это движок таблицы только для чтения, который позволяет читать данные из удалённой коллекции MongoDB. Поддерживаются только серверы MongoDB v3.6+. Seed list(mongodb+srv) пока не поддерживается.

Создание таблицы

Параметры движка
Если вы используете облачный сервис MongoDB Atlas, URL подключения можно получить из опции ‘Atlas SQL’. Seed list(mongodb**+srv**) пока не поддерживается, но будет добавлен в будущих релизах.
Либо можно передать URI:
Параметры движка

Сопоставление типов

Если ключ не найден в документе MongoDB (например, имя столбца не совпадает), будет вставлено значение по умолчанию или NULL (если столбец допускает NULL).

OID

Если вы хотите, чтобы String интерпретировался как oid в предложении WHERE, просто укажите имя столбца в последнем аргументе движка таблицы. Это может понадобиться при запросе записи по столбцу _id, который в MongoDB по умолчанию имеет тип oid. Если поле _id в таблице имеет другой тип, например uuid, нужно указать пустой oid_columns, иначе для этого параметра будет использовано значение _id по умолчанию.
По умолчанию только _id считается столбцом oid.
В этом случае результат будет 0, потому что ClickHouse не знает, что у another_oid_column тип oid, поэтому давайте это исправим:

Поддерживаемые секции

Поддерживаются только запросы с простыми выражениями (например, WHERE field = <constant> ORDER BY field2 LIMIT <constant>). Такие выражения преобразуются в язык запросов MongoDB и выполняются на стороне сервера. Вы можете отключить все эти ограничения с помощью mongodb_throw_on_unsupported_query. В этом случае ClickHouse пытается преобразовать запрос по возможности, но это может привести к полному сканированию таблицы и обработке на стороне ClickHouse.
Всегда лучше явно указывать тип литерала, поскольку MongoDB требует строго типизированных фильтров. Например, вы хотите фильтровать по Date:
Это не сработает, потому что MongoDB не приведет строку к типу Date, поэтому это нужно сделать вручную:
Это относится к Date, Date32, DateTime, Bool, UUID.

Пример использования

Предположим, что в MongoDB загружен набор данных sample_mflix. Создайте таблицу в ClickHouse, которая позволит читать данные из коллекции MongoDB:
Query
Query
Response
Query
Response
Query
Response

Устранение неполадок

Сгенерированный запрос MongoDB можно увидеть в журналах уровня DEBUG. Подробности реализации можно найти в документации mongocxx и mongoc.
Последнее изменение 2 июля 2026 г.