Saltar al contenido principal
El motor MongoDB es un motor de tabla de solo lectura que permite leer datos de una colección remota de MongoDB. Solo se admiten servidores MongoDB v3.6+. La lista semilla (mongodb+srv) aún no es compatible.

Crear una tabla

Parámetros del motor
Si utiliza el servicio en la nube MongoDB Atlas, puede obtener la URL de conexión desde la opción ‘Atlas SQL’. La lista semilla (mongodb**+srv**) aún no es compatible, pero se añadirá en próximas versiones.
Como alternativa, puede pasar un URI:
Parámetros del motor

Correspondencia de tipos

Si no se encuentra la clave en el documento de MongoDB (por ejemplo, porque el nombre de la columna no coincide), se insertará el valor predeterminado o NULL (si la columna admite valores NULL).

OID

Si quieres que un String se trate como oid en la cláusula WHERE, solo tienes que poner el nombre de la columna en el último argumento del motor de tabla. Esto puede ser necesario al consultar un registro por la columna _id, que en MongoDB tiene el tipo oid de forma predeterminada. Si el campo _id de la tabla tiene otro tipo, por ejemplo uuid, debes especificar oid_columns vacío; de lo contrario, se usará _id, que es el valor predeterminado de este parámetro.
De forma predeterminada, solo _id se considera una columna oid.
En este caso, el resultado será 0, porque ClickHouse no sabe que another_oid_column es de tipo oid, así que vamos a corregirlo:

Cláusulas compatibles

Solo se admiten consultas con expresiones simples (por ejemplo, WHERE field = <constant> ORDER BY field2 LIMIT <constant>). Estas expresiones se traducen al lenguaje de consulta de MongoDB y se ejecutan en el servidor. Puede desactivar todas estas restricciones con mongodb_throw_on_unsupported_query. En ese caso, ClickHouse intenta convertir la consulta en la medida de lo posible, pero esto puede provocar un escaneo completo de la tabla y que el procesamiento se realice del lado de ClickHouse.
Siempre es mejor establecer explícitamente el tipo del literal, porque Mongo requiere filtros con tipos estrictos. Por ejemplo, supongamos que quiere filtrar por Date:
Esto no funcionará porque Mongo no convertirá la cadena a Date, por lo que debe hacer la conversión manualmente:
Esto se aplica a Date, Date32, DateTime, Bool, UUID.

Ejemplo de uso

Suponiendo que MongoDB tenga cargado el conjunto de datos sample_mflix Cree una tabla en ClickHouse que permita leer datos de la colección de MongoDB:
Query
Query
Response
Query
Response
Query
Response

Solución de problemas

Puede ver la consulta de MongoDB generada en los logs de nivel DEBUG. Los detalles de implementación pueden consultarse en la documentación de mongocxx y mongoc.
Última modificación el 2 de julio de 2026