Pular para o conteúdo principal
O motor MongoDB é um motor de tabela somente leitura que permite ler dados de uma coleção remota do MongoDB. Há suporte apenas para servidores MongoDB v3.6+. Seed list(mongodb+srv) ainda não é compatível.

Criando uma tabela

Parâmetros do motor
Se você estiver usando o serviço em nuvem MongoDB Atlas, a URL de conexão pode ser obtida na opção ‘Atlas SQL’. Seed list(mongodb**+srv**) ainda não é compatível, mas será adicionada em versões futuras.
Como alternativa, você pode informar um URI:
Parâmetros do motor

Mapeamento de tipos

Se a chave não for encontrada no documento do MongoDB (por exemplo, se o nome da coluna não corresponder), o valor padrão ou NULL (se a coluna puder ser nula) será inserido.

OID

Se você quiser que uma String seja tratada como oid na cláusula WHERE, basta informar o nome da coluna no último argumento do mecanismo de tabela. Isso pode ser necessário ao consultar um registro pela coluna _id, que por padrão tem o tipo oid no MongoDB. Se o campo _id na tabela tiver outro tipo, por exemplo uuid, você precisará especificar oid_columns vazio; caso contrário, será usado o valor padrão desse parâmetro, _id.
Por padrão, apenas _id é tratado como a coluna oid.
Nesse caso, a saída será 0, porque o ClickHouse não sabe que another_oid_column é do tipo oid, então vamos corrigir isso:

Cláusulas suportadas

Somente consultas com expressões simples são suportadas (por exemplo, WHERE field = <constant> ORDER BY field2 LIMIT <constant>). Essas expressões são traduzidas para a linguagem de consulta do MongoDB e executadas no lado do servidor. Você pode desativar todas essas restrições usando mongodb_throw_on_unsupported_query. Nesse caso, o ClickHouse tenta converter a consulta da melhor forma possível, mas isso pode levar a uma varredura completa da tabela e ao processamento do lado do ClickHouse.
É sempre melhor definir explicitamente o tipo do literal, porque o Mongo exige filtros com tipagem estrita. Por exemplo, suponha que você queira filtrar por Date:
Isso não vai funcionar porque o Mongo não fará cast de string para Date, então você precisa fazer o cast manualmente:
Isso se aplica a Date, Date32, DateTime, Bool, UUID.

Exemplo de uso

Supondo que o MongoDB tenha o conjunto de dados sample_mflix carregado Crie uma tabela no ClickHouse que permita ler dados a partir de uma coleção do MongoDB:
Query
Query
Response
Query
Response
Query
Response

Solução de problemas

Você pode ver a consulta MongoDB gerada nos logs no nível DEBUG. Os detalhes de implementação podem ser encontrados na documentação do mongocxx e do mongoc.
Última modificação em 1 de julho de 2026