QueryBackend

Aggregate-bound SPI for raw query results.

Inputs carry their explicit scope. Model defaults such as Snapshot ACTIVE are applied by QueryGateway; direct SPI callers must supply any required deletion or access predicates themselves.

Every subscription to a returned publisher, including subscriptions created by retry, repeat, or concurrent callers, must own fresh mutable ObjectNode instances. Implementations must not cache or share nodes across subscriptions, publish cached nodes, mutate emitted nodes asynchronously, or mutate them after delivery.

Results must contain only standard JSON-tree values. Storage-driver Map/Document values, BSON values, POJONode, and arbitrary POJOs must be normalized inside the Backend or rejected before crossing this boundary.

Inheritors

Functions

Link copied to clipboard
abstract fun aggregate(query: AggregationQuery, schema: QueryModelSchema): Flux<ObjectNode>
Link copied to clipboard
abstract fun count(query: FilterExpression, schema: QueryModelSchema): Mono<Long>
Link copied to clipboard
abstract fun cursor(query: ICursorQuery, schema: QueryModelSchema): Mono<CursorPage<ObjectNode>>
Link copied to clipboard
abstract fun list(query: IListQuery, schema: QueryModelSchema): Flux<ObjectNode>
Link copied to clipboard
abstract fun paged(query: IPagedQuery, schema: QueryModelSchema): Mono<PagedList<ObjectNode>>
Link copied to clipboard
abstract fun single(query: ISingleQuery, schema: QueryModelSchema): Mono<ObjectNode>