Query Flow
executeEntity/executeCustomClassから始まる一般クエリとルート集約、Atlas Search、ベクトル検索のエントリーフローを区別します。
1. 実行コンテキスト選択
executeEntity(Class<E>, key)
エンティティタイプとリゾルバキーを選択し、コレクション名は MongoExecutionContext#getCollectionName(...) で決定します。
executeCustomClass(Class<E>, key, collectionName)
結果マッピングタイプと実際のコレクション名を直接指定します。
2. 一般クエリフロー
save, saveAll, バルク操作、エンティティ削除、createHistory のように条件ビルダーが不要な作業は、実行ビルダーから直接呼び出します。別途公開の update() ターミナルはなく、条件更新は atomicUpdate() を使用します。
3. 最初のステージ制約があるフロー
aggregation()
最初のステージからユーザーがDriver Bson パイプラインを直接構成します。
search(index)
$search/$searchMeta の最初のステージ制約を守るAtlas Search専用ビルダーです。
vectorSearch(index)
$vectorSearch の最初のステージ制約を守るベクトル検索専用ビルダーです。
4. Driverネイティブのエスケープハッチ
• 一般フィルター: driverFilter(Bson)
• ソート: SortSpec.driver(Bson)
• ルート集約: aggregation().stage(Bson)
• 検索演算子/オプション: operator(SearchOperator), driverOptions(...), stage(Bson)
• ベクトルクエリ/オプション: query(VectorSearchQuery), driverOptions(...), stage(Bson)
• パブリッシャーオプション: customizeQuery(...), customizeAggregation(...)