Skip to main content

SqbCollectionService

import { SqbCollectionService } from '@opra/sqb';

Hierarchy: ServiceBaseSqbServiceBaseSqbEntityServiceSqbCollectionService


Constructor

new SqbCollectionService<T>(dataType: Type<T> | string, options?: SqbCollectionService.Options)

Properties

PropertyTypeDescription
defaultLimitnumberMaximum records returned by findMany when no limit option is given (default: 100)

Methods

assert

assert(id: SQBAdapter.IdOrIds, options?: ExistsOptions): Promise<void>

Throws ResourceNotAvailableError if no record with the given ID exists.

optionsExistsOptions


create

create(input: PartialDTO<T>, options: RequiredSome<CreateOptions, 'projection'>): Promise<PartialDTO<T>>
create(input: PartialDTO<T>, options?: CreateOptions): Promise<T>

Inserts a new record and fetches it back. If projection is supplied the return type narrows to PartialDTO<T>.

optionsCreateOptions


createOnly

createOnly(input: PartialDTO<T>, options?: CreateOptions): Promise<void>

Inserts a new record without returning it.

optionsCreateOptions


count

count(options?: CountOptions): Promise<number>

Returns the number of records matching the filter.

optionsCountOptions


delete

delete(id: SQBAdapter.IdOrIds, options?: DeleteOptions): Promise<number>

Removes the record with the given ID. Returns the number of deleted records.

optionsDeleteOptions


deleteMany

deleteMany(options?: DeleteManyOptions): Promise<number>

Removes all records matching the filter. Returns the number of deleted records.

optionsDeleteManyOptions


exists

exists(id: SQBAdapter.IdOrIds, options?: ExistsOptions): Promise<boolean>

Returns true if a record with the given ID exists.

optionsExistsOptions


existsOne

existsOne(options?: ExistsOptions): Promise<boolean>

Returns true if at least one record matches the filter.

optionsExistsOptions


findById

findById(id: SQBAdapter.IdOrIds, options: RequiredSome<FindOneOptions, 'projection'>): Promise<PartialDTO<T> | undefined>
findById(id: SQBAdapter.IdOrIds, options?: FindOneOptions): Promise<T | undefined>

Fetches a record by ID. Returns undefined if not found.

optionsFindOneOptions


findOne

findOne(options: RequiredSome<FindOneOptions, 'projection'>): Promise<PartialDTO<T> | undefined>
findOne(options?: FindOneOptions): Promise<T | undefined>

Fetches the first record matching the filter. Returns undefined if not found.

optionsFindOneOptions


findMany

findMany(options: RequiredSome<FindManyOptions, 'projection'>): Promise<PartialDTO<T>[]>
findMany(options?: FindManyOptions): Promise<T[]>

Fetches a list of records. Applies defaultLimit when options.limit is not specified.

optionsFindManyOptions


findManyWithCount

findManyWithCount(options: RequiredSome<FindManyOptions, 'projection'>): Promise<{ count: number; items: PartialDTO<T>[] }>
findManyWithCount(options?: FindManyOptions): Promise<{ count: number; items: T[] }>

Same as findMany but also returns the total count of matching records before pagination.

optionsFindManyOptions


get

get(id: SQBAdapter.IdOrIds, options: RequiredSome<FindOneOptions, 'projection'>): Promise<PartialDTO<T>>
get(id: SQBAdapter.IdOrIds, options?: FindOneOptions): Promise<T>

Fetches a record by ID. Throws ResourceNotAvailableError if not found.

optionsFindOneOptions


update

update(id: SQBAdapter.IdOrIds, input: PatchDTO<T, SqlElement>, options: RequiredSome<UpdateOneOptions, 'projection'>): Promise<PartialDTO<T> | undefined>
update(id: SQBAdapter.IdOrIds, input: PatchDTO<T, SqlElement>, options?: UpdateOneOptions): Promise<T | undefined>

Applies a partial update to the record with the given ID and returns the updated record. Returns undefined if not found.

optionsUpdateOneOptions


updateOnly

updateOnly(id: SQBAdapter.IdOrIds, input: PatchDTO<T, SqlElement>, options?: UpdateOneOptions): Promise<number>

Same as update but does not fetch and return the updated record. Returns the number of matched records.

optionsUpdateOneOptions


updateMany

updateMany(input: PatchDTO<T, SqlElement>, options?: UpdateManyOptions): Promise<number>

Applies a partial update to all records matching the filter. Returns the number of matched records.

optionsUpdateManyOptions


Interfaces

SqbCollectionService.Options

Extends SqbEntityService.Options.

OptionTypeDefaultDescription
defaultLimitnumber100Default maximum number of records returned by findMany

CreateOptions

Extends Repository.CreateOptions.

OptionTypeDescription
projectionstring | string[]Fields to return in the fetched-back record. Omit for all fields.

CountOptions

OptionTypeDescription
filterSQBAdapter.FilterInputFilter expression — operator function, plain object, or OPRA filter string.

DeleteOptions

OptionTypeDescription
filterSQBAdapter.FilterInputAdditional filter expression.

DeleteManyOptions

OptionTypeDescription
filterSQBAdapter.FilterInputFilter expression — only matching records are deleted.

ExistsOptions

OptionTypeDescription
filterSQBAdapter.FilterInputAdditional filter expression for the existence check.

FindOneOptions

Same as FindManyOptions without the limit and skip properties.


FindManyOptions

OptionTypeDescription
filterSQBAdapter.FilterInputFilter expression.
projectionstring | string[]Fields to include.
sortstring[]Sort directives, e.g. ['name', '-createdAt'] (prefix - for descending).
limitnumberMaximum number of records to return. Defaults to defaultLimit.
skipnumberNumber of records to skip before returning results.

UpdateOneOptions

OptionTypeDescription
projectionstring | string[]Fields to return in the updated record.
filterSQBAdapter.FilterInputAdditional filter criteria for the update.

UpdateManyOptions

OptionTypeDescription
filterSQBAdapter.FilterInputFilter expression — only matching records are updated.