Abfragefluss
Unterscheidet den allgemeinen Abfragefluss, der mit executeEntity/executeCustomClass beginnt, von root-Aggregation, Atlas Search und Vector Search.
1. Ausführungskontext auswählen
executeEntity(Class<E>, key)
Wählt den Entitätstyp und den Resolver-Schlüssel aus, der Sammlungsname wird durch MongoExecutionContext#getCollectionName(...) bestimmt.
executeCustomClass(Class<E>, key, collectionName)
Gibt den Ergebnismappingtyp und den tatsächlichen Sammlungsnamen direkt an.
2. Allgemeiner Abfragefluss
Aufgaben wie save, saveAll, Bulk-Operationen, Entitätslöschungen und createHistory, die keinen Bedingungsbuilder benötigen, werden direkt im Ausführungsbuilder aufgerufen. Es gibt keinen separaten öffentlichen update()-Terminal, und bedingte Updates verwenden atomicUpdate().
3. Fluss mit Einschränkungen der ersten Stufe
aggregation()
Ab der ersten Stufe konfiguriert der Benutzer die Driver Bson-Pipeline direkt.
search(index)
$search/$searchMeta ist ein Atlas Search-spezifischer Builder, der die Einschränkungen der ersten Stufe einhält.
vectorSearch(index)
$vectorSearch ist ein Vector Search-spezifischer Builder, der die Einschränkungen der ersten Stufe einhält.
4. Driver-native Escape Hatch
• Allgemeiner Filter: driverFilter(Bson)
• Sortierung: SortSpec.driver(Bson)
• Root-Aggregation: aggregation().stage(Bson)
• Suchoperator/Optionen: operator(SuchOperator), driverOptions(...), stage(Bson)
• Vektorabfrage/Optionen: query(VectorSearchQuery), driverOptions(...), stage(Bson)
• Publisher-Option: customizeQuery(...), customizeAggregation(...)