34.7.5. 기타 작업


34.7.5.1. 집계

본문에 포함된 지정된 파이프라인으로 집계를 수행합니다. 집계는 길고 복잡한 작업이 될 수 있습니다. 보살피와 함께 사용하십시오.

// route: from("direct:aggregate").to("mongodb:myDb?database=science&collection=notableScientists&operation=aggregate");
List<Bson> aggregate = Arrays.asList(match(or(eq("scientist", "Darwin"), eq("scientist",
        group("$scientist", sum("count", 1)));
from("direct:aggregate")
    .setBody().constant(aggregate)
    .to("mongodb:myDb?database=science&collection=notableScientists&operation=aggregate")
    .to("mock:resultAggregate");

다음 IN 메시지 헤더를 지원합니다.

헤더 키빠른 일정description (MongoDB API doc에서 추출)예상 유형

CamelMongoDbBatchSize

MongoDbConstants.BATCH_SIZE

일괄 처리별로 반환할 문서 수를 설정합니다.

int/Integer

CamelMongoDbAllowDiskUse

MongoDbConstants.ALLOW_DISK_USE

집계 파이프라인 단계를 활성화하여 임시 파일에 데이터를 작성할 수 있습니다.

부울/Boolean

기본적으로 모든 결과 목록이 반환됩니다. 이는 결과 크기에 따라 메모리에 무거울 수 있습니다. 더 안전한 대안은 outputType=MongoIterable을 설정하는 것입니다. 다음 프로세서는 메시지 본문에서 반복 가능한 결과를 확인하여 결과를 하나씩 진행할 수 있습니다. 따라서 배치 크기를 설정하고 반복 가능한 값을 반환하면 결과를 효율적으로 검색하고 처리할 수 있습니다.

예는 다음과 같습니다.

List<Bson> aggregate = Arrays.asList(match(or(eq("scientist", "Darwin"), eq("scientist",
        group("$scientist", sum("count", 1)));
from("direct:aggregate")
    .setHeader(MongoDbConstants.BATCH_SIZE).constant(10)
    .setBody().constant(aggregate)
    .to("mongodb:myDb?database=science&collection=notableScientists&operation=aggregate&outputType=MongoIterable")
    .split(body())
    .streaming()
    .to("mock:resultAggregate");

.split(body()) 을 호출하면 경로 아래에 항목을 하나씩 보낼 수 있지만 모든 항목이 메모리에 먼저 로드됩니다. 따라서 .streaming() 호출은 일괄 처리를 통해 메모리에 데이터를 로드해야 합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.