Query Flow

executeEntity/executeCustomClassから始まる一般クエリとルート集約、Atlas Search、ベクトル検索のエントリーフローを区別します。


1. 実行コンテキスト選択

executeEntity(Class<E>, key)

エンティティタイプとリゾルバキーを選択し、コレクション名は MongoExecutionContext#getCollectionName(...) で決定します。

executeCustomClass(Class<E>, key, collectionName)

結果マッピングタイプと実際のコレクション名を直接指定します。

2. 一般クエリフロー

text
executeEntity(...) / executeCustomClass(...)
  -> fields(...) / driverFilter(...)
  -> end()
  -> findAll / find / count / distinct / delete / exists / atomicUpdate
  -> execute...

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(...)

© 2026 Byeolnaerim. 無断転載を禁じます。紹介プライバシーポリシー