查询流程
区分从 executeEntity/executeCustomClass 开始的一般查询与根聚合、Atlas Search、向量搜索的入口流。
1. 选择执行上下文
executeEntity(Class<E>, key)
选择实体类型和解析器键,集合名称由 MongoExecutionContext#getCollectionName(...) 决定。
executeCustomClass(Class<E>, key, collectionName)
直接指定结果映射类型和实际集合名称。
2. 一般查询流
像 save, saveAll, 批量操作、实体删除和 createHistory 这样的不需要条件构建器的操作直接在执行构建器中调用。没有单独的公共 update() 终端,条件更新使用 atomicUpdate()。
3. 第一个阶段有约束的流
聚合()
从第一个阶段开始,用户可以直接构建 Driver Bson 管道。
搜索(索引)
$search/$searchMeta 是遵循第一个阶段约束的 Atlas Search 专用构建器。
向量搜索(索引)
$vectorSearch 是遵循第一个阶段约束的向量搜索专用构建器。
4. Driver-native 逃生口
• 普通过滤器: driverFilter(Bson)
• 排序: SortSpec.driver(Bson)
• 根聚合: aggregation().stage(Bson)
• 搜索操作符/选项:operator(SearchOperator),driverOptions(...),stage(Bson)
• 向量查询/选项:query(VectorSearchQuery),driverOptions(...),stage(Bson)
• 发布者选项:customizeQuery(...),customizeAggregation(...)