Options Operator's
UpdateMethodsOptions
This type defines options used when performing update operations.
1. $upsert
:
• If set to true, it will perform an “upsert” (update if exists, insert if not).
• If not set, it will only update existing records and will fail if no record matches.
2. $multi
:
• If set to true, it will allow updating multiple records that match the criteria.
• If not set, only a single record will be updated.
3. $cache
:
• This option allows you to control caching behavior:
• If set to true, it enables caching.
• If set to a number, it sets the cache expiration time in seconds.
• If set to an object { $key: string, $ttl: number }
, it allows you to define a specific cache key and the time-to-live (TTL) for the cache.
RestoreMethodsOptions
This type defines options for restoring records, typically after deletion or archiving.
1. $limit
:
• Specifies the maximum number of records to restore.
• If not set, it will attempt to restore all matching records.
2. $logging
:
• This option controls logging behavior:
• If set to true, logging will be enabled by default.
• If set to a function (sql: string, benchmark?: number) => void, it allows you to provide a custom logging function to log SQL queries with optional benchmarks for performance.
CountMethodsOptions
This type defines options for counting records in the database.
1. $logging
:
• Controls logging as described above for the RestoreMethodsOptions.
2. $col
:
• Specifies the column to be used for counting, allowing you to group the count by a specific field.
• If not set, it will count all records.
3. $attributes
:
• Specifies the attributes (fields) to be considered when counting.
• The AttributesOption type would define the exact behavior (for instance, which columns to include or exclude).
4. $group
:
• Allows you to group the results by a specific field, returning the count for each group.
• The field will be of type keyof SchemaProps (a key from the schema).
5. $distinct
:
• If set to true, the count will be distinct (count only unique values for the column).
6. $paranoid
:
• If set to true, only non-deleted records will be counted (if “paranoid” mode is enabled in the ORM).
SearchMethodsOptions
This type defines options for search queries, enabling filtering, sorting, and pagination.
1. $limit
:
• Specifies the maximum number of records to return.
• If not set, all matching records will be returned.
2. $offset
:
• Used for pagination; specifies how many records to skip before starting to return results.
• Helps in implementing “pagination” with limit.
3. $sort
:
• Defines the sorting order for the query results.
• The SortOption type would define how the sorting works, such as sorting by a column in ascending or descending order.
4. $attributes
:
• Specifies which attributes (columns) should be included or excluded from the result.
• Similar to $attributes in CountMethodsOptions.
5. $group
:
• Used to group the results by a specific field, useful for aggregate functions (e.g., COUNT, SUM).
6. $having
:
• Allows you to filter the results after they have been grouped (typically used with aggregate functions like COUNT or SUM).
7. $raw
:
• If set to true, the query will return raw data (without transformations or model associations).
8. $paranoid
:
• Controls whether to include only non-deleted records (works when paranoid mode is enabled).
9. $subQuery
:
• If set to true, the query will be executed as a subquery, which may be useful for nested queries.
10. $logging
:
• Controls logging behavior for the query, as described in RestoreMethodsOptions.
11. $useMaster
:
• Specifies whether to use the master database for the query (useful in sharded or replicated database setups).
12. $lock
:
• This option defines row-level locking for the query:
• If set to true, it will lock the selected rows during the query.
• If set to an object, it allows you to specify the lock level (e.g., key_share or update) and the table(s) to apply the lock to.
13. $skipLocked
:
• If set to true, rows that are currently locked by other transactions will be skipped during the query.
14. $plain
:
• If set to true, it will return plain results without the ORM model’s data transformation.
15. $cache
:
• Controls caching behavior, similar to the $cache in UpdateMethodsOptions.
DeleteMethodsOptions
This type defines options for deleting records.
1. $limit
:
• Specifies the maximum number of records to delete.
• If not set, it will attempt to delete all matching records.
2. $force
:
• If set to true, the deletion will be forced, meaning it bypasses any “soft-delete” behavior and deletes the record permanently.
3. $truncate
:
• If set to true, the delete operation will truncate the table, effectively deleting all records in the table.
4. $logging
:
• Controls logging behavior, similar to the $logging option in RestoreMethodsOptions and SearchMethodsOptions.
Last updated