查詢流程
區分從 executeEntity/executeCustomClass 開始的一般查詢與根聚合、Atlas Search、向量搜索的進入流程。
1. 選擇執行上下文
executeEntity(Class<E>, key)
選擇實體類型和解析器鍵,集合名稱由 MongoExecutionContext#getCollectionName(...) 決定。
executeCustomClass(Class<E>, key, collectionName)
直接指定結果映射類型和實際集合名稱。
2. 一般查詢流程
像 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(...)