Native Aggregation
MongoDB Driver의 Bson aggregation stage를 첫 단계부터 그대로 실행하고 신규 Driver 기능을 DSL 재구현 없이 사용하는 방법을 설명합니다.
Driver-native root aggregation
aggregation()은 MongoDB Driver가 반환하는 Bson stage를 첫 stage부터 호출 순서 그대로 실행합니다. DSL이 Driver aggregation operator를 다시 구현하지 않고 pipeline 실행, mapping, Reactor publisher, preview/explain 연결만 담당합니다. Document도 Bson이므로 직접 전달할 수 있습니다.
결과 mapping
execute()
source entity type으로 결과를 mapping합니다.
execute(ResultType.class)
aggregation 결과 shape가 source entity와 다를 때 별도 result type으로 mapping합니다.
executeDocument()
raw MongoDB Document를 그대로 반환합니다.
MongoDB Driver 5.10의 $score / $scoreFusion
1.0.0은 $score와 $scoreFusion 전용 wrapper를 만들지 않습니다. Driver 5.10의 Aggregates.score(...) / Aggregates.scoreFusion(...)가 이미 Bson stage를 반환하므로 그대로 stage(...)에 전달합니다.
Search / Vector 뒤에 Bson stage 추가
Search/Vector의 stage(Bson)은 mandatory first stage인 $search/$vectorSearch 직후에 들어갑니다. $scoreFusion처럼 stage 자체가 pipeline 첫 번째여야 하는 기능은 aggregation()을 사용합니다.
Aggregation publisher options
preview()와 실제 MongoDB explain()도 root aggregation builder에서 지원합니다.