AtomicOperations
Interface: AtomicOperations<T>
Defined in: packages/models/src/repositories/repository.ts:202
Atomic operations for NoSQL databases
Only implement this for storage backends that support atomic updates (DynamoDB, MongoDB, Redis, etc.)
SQL databases should NOT implement this - use transactions instead
Extended by
Type Parameters
T
T extends ModelClass = ModelClass
Methods
incrementAttribute()
incrementAttribute<
K,L>(primaryKeyOrUid,info,conditionField?,condition?):Promise<void>
Defined in: packages/models/src/repositories/repository.ts:224
Atomically increment a single numeric field
Type Parameters
K
K extends string
L
L extends string
Parameters
primaryKeyOrUid
string | PrimaryKeyType<InstanceType<T>>
Primary key of object to update
info
L | { property: L; value?: number; }
Field to increment with optional value (default: 1)
conditionField?
K | null
Field to check for condition
condition?
PropertyPathType<InstanceType<T>, K> | JSONed<PropertyPathType<InstanceType<T>, K>>
Expected value for condition field
Returns
Promise<void>
incrementAttributes()
incrementAttributes<
K,L>(primaryKeyOrUid,info,conditionField?,condition?):Promise<void|Record<string,number>>
Defined in: packages/models/src/repositories/repository.ts:210
Atomically increment numeric field(s)
Type Parameters
K
K extends string
L
L extends string
Parameters
primaryKeyOrUid
string | PrimaryKeyType<InstanceType<T>>
Primary key of object to update
info
(L | { property: L; value?: number; })[] | Record<L, number>
Fields to increment with optional values (default: 1)
conditionField?
K | null
Field to check for condition
condition?
PropertyPathType<InstanceType<T>, K> | JSONed<PropertyPathType<InstanceType<T>, K>>
Expected value for condition field
Returns
Promise<void | Record<string, number>>
removeAttribute()
removeAttribute<
L,K>(primaryKeyOrUid,attribute,conditionField?,condition?):Promise<void>
Defined in: packages/models/src/repositories/repository.ts:254
Atomically remove an attribute
Type Parameters
L
L extends string
K
K extends string
Parameters
primaryKeyOrUid
string | PrimaryKeyType<InstanceType<T>>
Primary key of object to update
attribute
K
Attribute name to remove
conditionField?
L | null
Field to check for condition
condition?
PropertyPathType<InstanceType<T>, L> | JSONed<PropertyPathType<InstanceType<T>, L>>
Expected value for condition field
Returns
Promise<void>
setAttribute()
setAttribute<
K,L>(primaryKeyOrUid,attribute,value,conditionField?,condition?):Promise<void>
Defined in: packages/models/src/repositories/repository.ts:239
Atomically set a single attribute value
Type Parameters
K
K extends string
L
L extends string
Parameters
primaryKeyOrUid
string | PrimaryKeyType<InstanceType<T>>
Primary key of object to update
attribute
K
Attribute name to set
value
PropertyPathType<InstanceType<T>, K>
New value for attribute
conditionField?
L | null
Field to check for condition
condition?
PropertyPathType<InstanceType<T>, L> | JSONed<PropertyPathType<InstanceType<T>, L>>
Expected value for condition field
Returns
Promise<void>