Query Flow
Distinguishes the entry flow of general Queries starting from executeEntity/executeCustomClass, root aggregation, Atlas Search, and Vector Search.
1. Select execution context
executeEntity(Class<E>, key)
Select the entity type and resolver key, and the collection name is determined by MongoExecutionContext#getCollectionName(...).
executeCustomClass(Class<E>, key, collectionName)
Directly specify the result mapping type and the actual collection name.
2. General Query flow
Operations that do not require a condition builder, such as save, saveAll, bulk operations, entity delete, and createHistory, are called directly from the execution builder. There is no separate public update() terminal, and conditional updates use atomicUpdate().
3. Flow with constraints on the first stage.
aggregation()
From the first stage, the user directly constructs the Driver Bson pipeline.
search(index)
A builder dedicated to Atlas Search that adheres to the first-stage constraints of $search/$searchMeta.
vectorSearch(index)
A builder dedicated to Vector Search that adheres to the first-stage constraints of $vectorSearch.
4. Driver-native escape hatch
• General filter: driverFilter(Bson)
• Sorting: SortSpec.driver(Bson)
• Root aggregation: aggregation().stage(Bson)
• Search operator/options: operator(SearchOperator), driverOptions(...), stage(Bson)
• Vector query/options: query(VectorSearchQuery), driverOptions(...), stage(Bson)
• publisher option: customizeQuery(...), customizeAggregation(...)