ネイティブ集約
MongoDB DriverのBson集約ステージを最初のステージからそのまま実行し、新しいDriver機能をDSL再実装なしで使用する方法を説明します。
Driver-native root aggregation
aggregation()はMongoDB Driverが返すBsonステージを最初のステージから呼び出し順序のまま実行します。DSLはDriver集約オペレーターを再実装せず、パイプライン実行、マッピング、Reactorパブリッシャー、プレビュー/説明の接続のみを担当します。DocumentもBsonなので直接渡すことができます。
結果のマッピング
execute()
source entity typeで結果をマッピングします。
execute(ResultType.class)
aggregationの結果のshapeがsource entityと異なる場合、別のresult typeにマッピングします。
executeDocument()
raw MongoDB Documentをそのまま返します。
MongoDB Driver 5.10の$score / $scoreFusion
1.0.0は$scoreと$scoreFusion専用のラッパーを作成しません。Driver 5.10のAggregates.score(...) / Aggregates.scoreFusion(...)はすでにBsonステージを返すため、そのままstage(...)に渡します。
Search / Vectorの後にBsonステージを追加
Search/Vectorのstage(Bson)は必須の最初のステージである$search/$vectorSearchの直後に入ります。$scoreFusionのようにステージ自体がパイプラインの最初でなければならない機能はaggregation()を使用します。
Aggregation publisher options
preview()と実際のMongoDB explain()もルートaggregationビルダーでサポートされています。