메인 콘텐츠로 건너뛰기
MongoDB 엔진은 원격 MongoDB 컬렉션의 데이터를 읽을 수 있는 읽기 전용 테이블 엔진입니다. MongoDB v3.6+ 서버만 지원합니다. Seed list(mongodb+srv)는 아직 지원되지 않습니다.

테이블 생성하기

엔진 매개변수
MongoDB Atlas Cloud 서비스를 사용하는 경우 연결 URL은 ‘Atlas SQL’ 옵션에서 확인할 수 있습니다. Seed list(mongodb**+srv**)는 아직 지원되지 않지만, 향후 릴리스에서 추가될 예정입니다.
또는 URI를 전달할 수 있습니다:
엔진 매개변수

유형 매핑

MongoDB 문서에서 키를 찾지 못하면(예: 컬럼 이름이 일치하지 않으면) 기본값 또는 NULL(컬럼이 널 허용인 경우)이 삽입됩니다.

OID

String이 WHERE 절에서 oid로 처리되게 하려면 테이블 엔진의 마지막 인수에 해당 컬럼 이름을 지정하면 됩니다. 이는 MongoDB에서 기본적으로 oid 유형인 _id 컬럼으로 레코드를 쿼리할 때 필요할 수 있습니다. 테이블의 _id 필드가 uuid와 같은 다른 유형이면 빈 oid_columns를 지정해야 합니다. 그렇지 않으면 이 매개변수의 기본값인 _id가 사용됩니다.
기본적으로 _idoid 컬럼으로 간주됩니다.
이 경우 출력은 0입니다. ClickHouse는 another_oid_column의 유형이 oid라는 것을 알지 못하므로, 이를 수정하겠습니다:

지원되는 절

단순한 표현식이 포함된 쿼리만 지원됩니다(예: WHERE field = <constant> ORDER BY field2 LIMIT <constant>). 이러한 표현식은 MongoDB 쿼리 언어로 변환되어 서버 측에서 실행됩니다. mongodb_throw_on_unsupported_query를 사용하면 이러한 제한을 모두 비활성화할 수 있습니다. 이 경우 ClickHouse는 가능한 범위에서 쿼리 변환을 시도하지만, 전체 테이블 스캔이 발생하고 처리가 ClickHouse 측에서 수행될 수 있습니다.
Mongo는 엄격한 유형의 필터를 요구하므로 리터럴의 유형을 명시적으로 지정하는 것이 항상 더 좋습니다. 예를 들어 Date로 필터링하려는 경우를 살펴보겠습니다:
Mongo는 문자열을 Date로 CAST하지 않으므로 이 쿼리는 작동하지 않습니다. 따라서 수동으로 CAST해야 합니다:
이는 Date, Date32, DateTime, Bool, UUID에 적용됩니다.

사용 예시

MongoDB에 sample_mflix 데이터셋이 로드되어 있다고 가정합니다. MongoDB 컬렉션에서 데이터를 읽을 수 있는 ClickHouse 테이블을 생성합니다:
Query
Query
Response
Query
Response
Query
Response

문제 해결

생성된 MongoDB 쿼리는 DEBUG 수준의 로그에서 확인할 수 있습니다. 구현 세부 사항은 mongocxxmongoc 문서에서 확인할 수 있습니다.
마지막 수정일 2026년 6월 12일