228.6.5. 기타 작업

228.6.5.1. 집계

Camel 2.14에서 사용 가능

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

// route: from("direct:aggregate").to("mongodb:myDb?database=science&collection=notableScientists&operation=aggregate");
from("direct:aggregate")
    .setBody().constant("[{ $match : {$or : [{\"scientist\" : \"Darwin\"},{\"scientist\" : \"Einstein\"}]}},{ $group: { _id: \"$scientist\", count: { $sum: 1 }} } ]")
    .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=DBCursor를 통해 지원됩니다.

위의 헤더를 설정하는 것보다 더 쉬운 엔드 포인트 옵션으로 outputType=DBCursor (Camel 2.21+)를 포함하여 서버에서 반환된 문서를 경로에 "스트림"할 수 있습니다. 이를 통해 Mongo 드라이버에서 DBCursor를 직접 처리하며 Mongo 쉘 내에서 aggregate()를 실행하는 것처럼 경로가 결과를 반복할 수 있습니다. 기본적으로 이 구성 요소에서는 드라이버의 커서에서 문서를 목록으로 로드하고 이를 경로로 반환하므로 메모리 내 개체가 많은 수가 발생할 수 있습니다. DBCursor가 일치하는 문서 수를 요청하지 않음을 기억하십시오. 자세한 내용은 MongoDB 문서 사이트를 참조하십시오.

옵션 outputType=DBCursor 및 배치 크기가 있는 예:

// route: from("direct:aggregate").to("mongodb:myDb?database=science&collection=notableScientists&operation=aggregate");
from("direct:aggregate")
    .setHeader(MongoDbConstants.BATCH_SIZE).constant(10)
    .setBody().constant("[{ $match : {$or : [{\"scientist\" : \"Darwin\"},{\"scientist\" : \"Einstein\"}]}},{ $group: { _id: \"$scientist\", count: { $sum: 1 }} } ]")
    .to("mongodb:myDb?database=science&collection=notableScientists&operation=aggregate&outputType=DBCursor")
    .to("mock:resultAggregate");