查詢流程

區分從 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. 第一階段有約束的流程

聚合()

從第一階段開始,使用者可以直接構建驅動程序 Bson 管道。

搜索(索引)

$search/$searchMeta 是遵循第一階段約束的 Atlas Search 專用構建器。

向量搜索(索引)

$vectorSearch 是遵循第一階段約束的向量搜索專用構建器。

4. 驅動程序原生逃生口

• 一般過濾器: driverFilter(Bson)

• 排序: SortSpec.driver(Bson)

• 根聚合: aggregation().stage(Bson)

• 搜尋運算子/選項:operator(SearchOperator),driverOptions(...),stage(Bson)

• 向量查詢/選項:query(VectorSearchQuery),driverOptions(...),stage(Bson)

• 發佈者選項:customizeQuery(...),customizeAggregation(...)

© 2026 Byeolnaerim. 版權所有。介紹隱私政策