Skip to content

Interface: ModelQueryBuilderContract<Model, Result> ​

Model query builder will have extras methods on top of the Database query builder

Extends ​

  • ChainableContract.ExcutableQueryBuilderContract<Result[]>

Type Parameters ​

Type ParameterDefault type
Model extends LucidModel-
ResultInstanceType<Model>

Properties ​

PropertyModifierTypeDescriptionInherited from
[toStringTag]readonlystring-ExcutableQueryBuilderContract.[toStringTag]
andDoesntHavepublicHas<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>--
andHaspublicHas<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>--
andHavingpublicHaving<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andHaving
andHavingBetweenpublicHavingBetween<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andHavingBetween
andHavingExistspublicHavingExists<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andHavingExists
andHavingInpublicHavingIn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andHavingIn
andHavingNotBetweenpublicHavingBetween<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andHavingNotBetween
andHavingNotExistspublicHavingExists<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andHavingNotExists
andHavingNotInpublicHavingIn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andHavingNotIn
andHavingNotNullpublicHavingNull<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andHavingNotNull
andHavingNullpublicHavingNull<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andHavingNull
andHavingRawpublicRawQueryFn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andHavingRaw
andWherepublicWhere<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhere
andWhereBetweenpublicWhereBetween<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereBetween
andWhereColumnpublicWhereColumn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereColumn
andWhereDoesntHavepublicWhereHas<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>--
andWhereExistspublicWhereExists<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereExists
andWhereHaspublicWhereHas<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>--
andWhereILikepublicWhereLike<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereILike
andWhereInpublicWhereIn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereIn
andWhereJsonpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereJson
andWhereJsonPathpublicWhereJsonPath<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereJsonPath
andWhereJsonSubsetpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereJsonSubset
andWhereJsonSupersetpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereJsonSuperset
andWhereLikepublicWhereLike<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereLike
andWhereNotpublicWhere<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereNot
andWhereNotBetweenpublicWhereBetween<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereNotBetween
andWhereNotColumnpublicWhereColumn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereNotColumn
andWhereNotExistspublicWhereExists<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereNotExists
andWhereNotInpublicWhereIn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereNotIn
andWhereNotJsonpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereNotJson
andWhereNotJsonSubsetpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereNotJsonSubset
andWhereNotJsonSupersetpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereNotJsonSuperset
andWhereNotNullpublicWhereNull<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereNotNull
andWhereNullpublicWhereNull<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereNull
andWhereRawpublicRawQueryFn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.andWhereRaw
avgpublicAggregate<ModelQueryBuilderContract<Model, Result>>--
avgDistinctpublicAggregate<ModelQueryBuilderContract<Model, Result>>--
clientpublicQueryClientContractReference to query client used for making queries-
clientOptionsreadonlyModelAdapterOptionsA copy of client options.-
columnspublic( | string | QueryBuilder<any, any> | RawQueryBuilder<any, unknown[]>)[]-ModelQueryBuilderContract.columns
countpublicAggregate<ModelQueryBuilderContract<Model, Result>>Aggregates-
countDistinctpublicAggregate<ModelQueryBuilderContract<Model, Result>>--
crossJoinpublicJoin<ModelQueryBuilderContract<Model, Result>>-ChainableContract.crossJoin
decrementpublicCounter<ModelQueryBuilderContract<Model, any>>--
distinctpublicDistinct<ModelQueryBuilderContract<Model, Result>>-ChainableContract.distinct
distinctOnpublicDistinct<ModelQueryBuilderContract<Model, Result>>-ChainableContract.distinctOn
doesntHavepublicHas<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>--
frompublicFromTable<ModelQueryBuilderContract<Model, Result>>-ChainableContract.from
fullOuterJoinpublicJoin<ModelQueryBuilderContract<Model, Result>>-ChainableContract.fullOuterJoin
groupBypublicGroupBy<ModelQueryBuilderContract<Model, Result>>-ChainableContract.groupBy
groupByRawpublicRawQueryFn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.groupByRaw
haspublicHas<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>Add where constraint using the relationship-
hasAggregatespublicboolean-ChainableContract.hasAggregates
hasGroupBypublicboolean-ChainableContract.hasGroupBy
hasUnionpublicboolean-ChainableContract.hasUnion
havingpublicHaving<ModelQueryBuilderContract<Model, Result>>-ChainableContract.having
havingBetweenpublicHavingBetween<ModelQueryBuilderContract<Model, Result>>-ChainableContract.havingBetween
havingExistspublicHavingExists<ModelQueryBuilderContract<Model, Result>>-ChainableContract.havingExists
havingInpublicHavingIn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.havingIn
havingNotBetweenpublicHavingBetween<ModelQueryBuilderContract<Model, Result>>-ChainableContract.havingNotBetween
havingNotExistspublicHavingExists<ModelQueryBuilderContract<Model, Result>>-ChainableContract.havingNotExists
havingNotInpublicHavingIn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.havingNotIn
havingNotNullpublicHavingNull<ModelQueryBuilderContract<Model, Result>>-ChainableContract.havingNotNull
havingNullpublicHavingNull<ModelQueryBuilderContract<Model, Result>>-ChainableContract.havingNull
havingRawpublicRawQueryFn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.havingRaw
incrementpublicCounter<ModelQueryBuilderContract<Model, any>>--
innerJoinpublicJoin<ModelQueryBuilderContract<Model, Result>>-ChainableContract.innerJoin
intersectpublicIntersect<ModelQueryBuilderContract<Model, Result>>-ChainableContract.intersect
isChildQuerypublicbooleanWhether or not the query is a child query generated for .where callbacks-
joinpublicJoin<ModelQueryBuilderContract<Model, Result>>-ChainableContract.join
joinRawpublicRawQueryFn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.joinRaw
keysResolver?public(columnName: string) => string-ChainableContract.keysResolver
knexQuerypublicQueryBuilder-ChainableContract.knexQuery
leftJoinpublicJoin<ModelQueryBuilderContract<Model, Result>>-ChainableContract.leftJoin
leftOuterJoinpublicJoin<ModelQueryBuilderContract<Model, Result>>-ChainableContract.leftOuterJoin
maxpublicAggregate<ModelQueryBuilderContract<Model, Result>>--
minpublicAggregate<ModelQueryBuilderContract<Model, Result>>--
modelpublicModel--
orderBypublicOrderBy<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orderBy
orderByRawpublicRawQueryFn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orderByRaw
orDoesntHavepublicHas<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>--
orHaspublicHas<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>--
orHavingpublicHaving<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orHaving
orHavingBetweenpublicHavingBetween<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orHavingBetween
orHavingExistspublicHavingExists<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orHavingExists
orHavingInpublicHavingIn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orHavingIn
orHavingNotBetweenpublicHavingBetween<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orHavingNotBetween
orHavingNotExistspublicHavingExists<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orHavingNotExists
orHavingNotInpublicHavingIn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orHavingNotIn
orHavingNotNullpublicHavingNull<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orHavingNotNull
orHavingNullpublicHavingNull<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orHavingNull
orHavingRawpublicRawQueryFn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orHavingRaw
orWherepublicWhere<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhere
orWhereBetweenpublicWhereBetween<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereBetween
orWhereColumnpublicWhereColumn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereColumn
orWhereDoesntHavepublicWhereHas<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>--
orWhereExistspublicWhereExists<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereExists
orWhereHaspublicWhereHas<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>--
orWhereILikepublicWhereLike<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereILike
orWhereInpublicWhereIn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereIn
orWhereJsonpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereJson
orWhereJsonPathpublicWhereJsonPath<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereJsonPath
orWhereJsonSubsetpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereJsonSubset
orWhereJsonSupersetpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereJsonSuperset
orWhereLikepublicWhereLike<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereLike
orWhereNotpublicWhere<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereNot
orWhereNotBetweenpublicWhereBetween<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereNotBetween
orWhereNotColumnpublicWhereColumn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereNotColumn
orWhereNotExistspublicWhereExists<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereNotExists
orWhereNotInpublicWhereIn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereNotIn
orWhereNotJsonpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereNotJson
orWhereNotJsonSubsetpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereNotJsonSubset
orWhereNotJsonSupersetpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereNotJsonSuperset
orWhereNotNullpublicWhereNull<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereNotNull
orWhereNullpublicWhereNull<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereNull
orWhereRawpublicRawQueryFn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.orWhereRaw
preloadpublicPreload<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>Define relationships to be preloaded-
preloadOncepublicPreloadOnce<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>--
returningpublicReturning<ModelQueryBuilderContract<Model, Result>>--
rightJoinpublicJoin<ModelQueryBuilderContract<Model, Result>>-ChainableContract.rightJoin
rightOuterJoinpublicJoin<ModelQueryBuilderContract<Model, Result>>-ChainableContract.rightOuterJoin
selectpublicDatabaseQueryBuilderSelect<ModelQueryBuilderContract<Model, Result>>-ChainableContract.select
sideloadedpublicInstanceType<Model>["$sideloaded"]--
subQueryAlias?publicstring-ChainableContract.subQueryAlias
sumpublicAggregate<ModelQueryBuilderContract<Model, Result>>--
sumDistinctpublicAggregate<ModelQueryBuilderContract<Model, Result>>--
unionpublicUnion<ModelQueryBuilderContract<Model, Result>>-ChainableContract.union
unionAllpublicUnionAll<ModelQueryBuilderContract<Model, Result>>-ChainableContract.unionAll
updatepublicUpdate<ModelQueryBuilderContract<Model, any>>Mutations (update and increment can be one query aswell)-
wherepublicWhere<ModelQueryBuilderContract<Model, Result>>-ChainableContract.where
whereBetweenpublicWhereBetween<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereBetween
whereColumnpublicWhereColumn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereColumn
whereDoesntHavepublicWhereHas<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>--
whereExistspublicWhereExists<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereExists
whereHaspublicWhereHas<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>Add where constraint using the relationship with a custom callback-
whereILikepublicWhereLike<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereILike
whereInpublicWhereIn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereIn
whereJsonpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereJson
whereJsonPathpublicWhereJsonPath<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereJsonPath
whereJsonSubsetpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereJsonSubset
whereJsonSupersetpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereJsonSuperset
whereLikepublicWhereLike<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereLike
whereNotpublicWhere<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereNot
whereNotBetweenpublicWhereBetween<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereNotBetween
whereNotColumnpublicWhereColumn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereNotColumn
whereNotExistspublicWhereExists<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereNotExists
whereNotInpublicWhereIn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereNotIn
whereNotJsonpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereNotJson
whereNotJsonSubsetpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereNotJsonSubset
whereNotJsonSupersetpublicWhereJson<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereNotJsonSuperset
whereNotNullpublicWhereNull<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereNotNull
whereNullpublicWhereNull<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereNull
whereRawpublicRawQueryFn<ModelQueryBuilderContract<Model, Result>>-ChainableContract.whereRaw
withpublicWith<ModelQueryBuilderContract<Model, Result>>-ChainableContract.with
withAggregatepublicWithAggregate<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>Fetch aggregate value for a given relationship-
withCountpublicWithCount<InstanceType<Model>, ModelQueryBuilderContract<Model, Result>>Fetch relationship count-
withMaterializedpublicWith<ModelQueryBuilderContract<Model, Result>>-ChainableContract.withMaterialized
withNotMaterializedpublicWith<ModelQueryBuilderContract<Model, Result>>-ChainableContract.withNotMaterialized
withRecursivepublicWith<ModelQueryBuilderContract<Model, Result>>-ChainableContract.withRecursive

Methods ​

apply() ​

ts
apply<Scopes>(callback: (scopes: Scopes) => void): this;

Alias for the

Type Parameters ​

Type Parameter
Scopes extends ExtractScopes<Model>

Parameters ​

ParameterType
callback(scopes: Scopes) => void

Returns ​

this

With Scopes ​

method


as() ​

ts
as(name: string): this;

Parameters ​

ParameterType
namestring

Returns ​

this

Inherited from ​

ts
ChainableContract.as;

catch() ​

ts
catch<TResult>(onrejected?: (reason: any) => TResult | PromiseLike<TResult> | null): Promise<Result[] | TResult>;

Attaches a callback for only the rejection of the Promise.

Type Parameters ​

Type ParameterDefault type
TResultnever

Parameters ​

ParameterTypeDescription
onrejected?(reason: any) => TResult | PromiseLike<TResult> | nullThe callback to execute when the Promise is rejected.

Returns ​

Promise<Result[] | TResult>

A Promise for the completion of the callback.

Inherited from ​

ts
ExcutableQueryBuilderContract.catch;

clearHaving() ​

ts
clearHaving(): this;

Returns ​

this

Inherited from ​

ts
ChainableContract.clearHaving;

clearLimit() ​

ts
clearLimit(): this;

Returns ​

this

Inherited from ​

ts
ChainableContract.clearLimit;

clearOffset() ​

ts
clearOffset(): this;

Returns ​

this

Inherited from ​

ts
ChainableContract.clearOffset;

clearOrder() ​

ts
clearOrder(): this;

Returns ​

this

Inherited from ​

ts
ChainableContract.clearOrder;

clearSelect() ​

ts
clearSelect(): this;

Returns ​

this

Inherited from ​

ts
ChainableContract.clearSelect;

clearWhere() ​

ts
clearWhere(): this;

Returns ​

this

Inherited from ​

ts
ChainableContract.clearWhere;

clone() ​

ts
clone<ClonedResult>(): ModelQueryBuilderContract<Model, ClonedResult>;

Clone query builder instance

Type Parameters ​

Type ParameterDefault type
ClonedResultResult

Returns ​

ModelQueryBuilderContract<Model, ClonedResult>


debug() ​

ts
debug(debug: boolean): this;

Parameters ​

ParameterType
debugboolean

Returns ​

this

Inherited from ​

ts
ExcutableQueryBuilderContract.debug;

del() ​

ts
del(returning?: OneOrMany<string>): ModelQueryBuilderContract<Model, any>;

Perform delete operation

Parameters ​

ParameterType
returning?OneOrMany<string>

Returns ​

ModelQueryBuilderContract<Model, any>


delete() ​

ts
delete(returning?: OneOrMany<string>): ModelQueryBuilderContract<Model, any>;

Parameters ​

ParameterType
returning?OneOrMany<string>

Returns ​

ModelQueryBuilderContract<Model, any>


exec() ​

ts
exec(): Promise<Result[]>;

Returns ​

Promise<Result[]>

Inherited from ​

ts
ExcutableQueryBuilderContract.exec;

finally() ​

ts
finally(onfinally?: () => void | null): Promise<Result[]>;

Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The resolved value cannot be modified from the callback.

Parameters ​

ParameterTypeDescription
onfinally?() => void | nullThe callback to execute when the Promise is settled (fulfilled or rejected).

Returns ​

Promise<Result[]>

A Promise for the completion of the callback.

Inherited from ​

ts
ExcutableQueryBuilderContract.finally;

first() ​

ts
first(): Promise<Result | null>;

Execute and get first result

Returns ​

Promise<Result | null>


firstOrFail() ​

ts
firstOrFail(): Promise<Result>;

Return the first matching row or fail

Returns ​

Promise<Result>


forPage() ​

ts
forPage(page: number, perPage?: number): this;

A shorthand to define limit and offset based upon the current page

Parameters ​

ParameterType
pagenumber
perPage?number

Returns ​

this


forShare() ​

ts
forShare(...tableNames: string[]): this;

Parameters ​

ParameterType
...tableNamesstring[]

Returns ​

this

Inherited from ​

ts
ChainableContract.forShare;

forUpdate() ​

ts
forUpdate(...tableNames: string[]): this;

Parameters ​

ParameterType
...tableNamesstring[]

Returns ​

this

Inherited from ​

ts
ChainableContract.forUpdate;

if() ​

ts
if(
   condition: any,
   matchCallback: (query: this) => any,
   noMatchCallback?: (query: this) => any): this;

Executes the callback when condition is truthy

Parameters ​

ParameterType
conditionany
matchCallback(query: this) => any
noMatchCallback?(query: this) => any

Returns ​

this

Inherited from ​

ts
ChainableContract.if;

ifDialect() ​

ts
ifDialect(
   dialect:
  | "mssql"
  | "mysql"
  | "oracledb"
  | "postgres"
  | "redshift"
  | "sqlite3"
  | "libsql"
  | "better-sqlite3"
  | (
  | "mssql"
  | "mysql"
  | "oracledb"
  | "postgres"
  | "redshift"
  | "sqlite3"
  | "libsql"
  | "better-sqlite3")[],
   matchCallback: (query: this) => any,
   noMatchCallback?: (query: this) => any): this;

Executes the callback when dialect matches one of the mentioned dialects

Parameters ​

ParameterType
dialect| "mssql" | "mysql" | "oracledb" | "postgres" | "redshift" | "sqlite3" | "libsql" | "better-sqlite3" | ( | "mssql" | "mysql" | "oracledb" | "postgres" | "redshift" | "sqlite3" | "libsql" | "better-sqlite3")[]
matchCallback(query: this) => any
noMatchCallback?(query: this) => any

Returns ​

this


limit() ​

ts
limit(limit: number): this;

Parameters ​

ParameterType
limitnumber

Returns ​

this

Inherited from ​

ts
ChainableContract.limit;

match() ​

ts
match(...blocks: ([any, (query: this) => any] | (query: this) => any)[]): this;

Write blocks to match from

Parameters ​

ParameterType
...blocks([any, (query: this) => any] | (query: this) => any)[]

Returns ​

this

Inherited from ​

ts
ChainableContract.match;

noWait() ​

ts
noWait(): this;

Returns ​

this

Inherited from ​

ts
ChainableContract.noWait;

offset() ​

ts
offset(offset: number): this;

Parameters ​

ParameterType
offsetnumber

Returns ​

this

Inherited from ​

ts
ChainableContract.offset;

paginate() ​

ts
paginate(page: number, perPage?: number): Promise<Result extends LucidRow ? ModelPaginatorContract<Result<Result>> : SimplePaginatorContract<Result>>;

Execute query with pagination

Parameters ​

ParameterType
pagenumber
perPage?number

Returns ​

Promise<Result extends LucidRow ? ModelPaginatorContract<Result<Result>> : SimplePaginatorContract<Result>>


pojo() ​

ts
pojo<T>(): ModelQueryBuilderContract<Model, T>;

Get rows back as a plain javascript object and not an array of model instances

Type Parameters ​

Type Parameter
T

Returns ​

ModelQueryBuilderContract<Model, T>


preloadCached() ​

Call Signature ​

ts
preloadCached(
   name: string,
   options?: RelationCacheCallOptions,
   callback?: (query: ModelQueryBuilderContract<LucidModel>) => void): this;

Preloads a 1:1 relation with explicit cache controls (e.g. forceLoad) and optional per-call cache entry overrides, then delegates to the native preload. Present on cache-enabled resourceful models.

Parameters ​
ParameterTypeDescription
namestringThe relation name to preload.
options?RelationCacheCallOptionsCache call options (forceLoad + entry overrides).
callback?(query: ModelQueryBuilderContract<LucidModel>) => voidOptional Lucid preload callback.
Returns ​

this

Call Signature ​

ts
preloadCached(
   name: string,
   options?: RelationCacheCallOptions,
   callback?: (query: ModelQueryBuilderContract<LucidModel>) => void): this;

Preloads a 1:1 relation with explicit cache controls (e.g. forceLoad) and optional per-call cache entry overrides, then delegates to the native preload. Present on cache-enabled resourceful models.

Parameters ​
ParameterTypeDescription
namestringThe relation name to preload.
options?RelationCacheCallOptionsCache call options (forceLoad + entry overrides).
callback?(query: ModelQueryBuilderContract<LucidModel>) => voidOptional Lucid preload callback.
Returns ​

this


reporterData() ​

ts
reporterData(data: any): this;

Parameters ​

ParameterType
dataany

Returns ​

this

Inherited from ​

ts
ExcutableQueryBuilderContract.reporterData;

rowTransformer() ​

ts
rowTransformer(callback: (row: LucidRow) => void): this;

Define a callback to transform a row

Parameters ​

ParameterType
callback(row: LucidRow) => void

Returns ​

this


sideload() ​

ts
sideload<Sideloaded, Merge>(value: Merge extends true ? Partial<Sideloaded> : Sideloaded, merge?: Merge): this;

A custom set of sideloaded properties defined on the query builder, this will be passed to the model instance created by the query builder

Type Parameters ​

Type ParameterDefault type
Sideloaded extends ModelObject-
Merge extends booleanfalse

Parameters ​

ParameterType
valueMerge extends true ? Partial<Sideloaded> : Sideloaded
merge?Merge

Returns ​

this


skipLocked() ​

ts
skipLocked(): this;

Returns ​

this

Inherited from ​

ts
ChainableContract.skipLocked;

then() ​

ts
then<TResult1, TResult2>(onfulfilled?:
  | (value: Result[]) => TResult1 | PromiseLike<TResult1>
| null, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2> | null): Promise<TResult1 | TResult2>;

Attaches callbacks for the resolution and/or rejection of the Promise.

Type Parameters ​

Type ParameterDefault type
TResult1Result[]
TResult2never

Parameters ​

ParameterTypeDescription
onfulfilled?| (value: Result[]) => TResult1 | PromiseLike<TResult1> | nullThe callback to execute when the Promise is resolved.
onrejected?(reason: any) => TResult2 | PromiseLike<TResult2> | nullThe callback to execute when the Promise is rejected.

Returns ​

Promise<TResult1 | TResult2>

A Promise for the completion of which ever callback is executed.

Inherited from ​

ts
ExcutableQueryBuilderContract.then;

timeout() ​

ts
timeout(time: number, options?: {
  cancel: boolean;
}): this;

Parameters ​

ParameterType
timenumber
options?{ cancel: boolean; }
options.cancel?boolean

Returns ​

this

Inherited from ​

ts
ExcutableQueryBuilderContract.timeout;

toQuery() ​

ts
toQuery(): string;

Returns ​

string

Inherited from ​

ts
ExcutableQueryBuilderContract.toQuery;

toSQL() ​

ts
toSQL(): Sql;

Returns ​

Sql

Inherited from ​

ts
ExcutableQueryBuilderContract.toSQL;

unless() ​

ts
unless(
   condition: any,
   matchCallback: (query: this) => any,
   noMatchCallback?: (query: this) => any): this;

Executes the callback when condition is falsy

Parameters ​

ParameterType
conditionany
matchCallback(query: this) => any
noMatchCallback?(query: this) => any

Returns ​

this

Inherited from ​

ts
ChainableContract.unless;

unlessDialect() ​

ts
unlessDialect(
   dialect:
  | "mssql"
  | "mysql"
  | "oracledb"
  | "postgres"
  | "redshift"
  | "sqlite3"
  | "libsql"
  | "better-sqlite3"
  | (
  | "mssql"
  | "mysql"
  | "oracledb"
  | "postgres"
  | "redshift"
  | "sqlite3"
  | "libsql"
  | "better-sqlite3")[],
   matchCallback: (query: this) => any,
   noMatchCallback?: (query: this) => any): this;

Executes the callback when dialect matches doesn't all the mentioned dialects

Parameters ​

ParameterType
dialect| "mssql" | "mysql" | "oracledb" | "postgres" | "redshift" | "sqlite3" | "libsql" | "better-sqlite3" | ( | "mssql" | "mysql" | "oracledb" | "postgres" | "redshift" | "sqlite3" | "libsql" | "better-sqlite3")[]
matchCallback(query: this) => any
noMatchCallback?(query: this) => any

Returns ​

this


usePreloader() ​

ts
usePreloader(preloader: PreloaderContract<LucidRow>): this;

Define a custom preloader for the current query

Parameters ​

ParameterType
preloaderPreloaderContract<LucidRow>

Returns ​

this


useTransaction() ​

ts
useTransaction(trx: TransactionClientContract): this;

Parameters ​

ParameterType
trxTransactionClientContract

Returns ​

this

Deprecated ​

Do not use this method. Instead create a query with options.client

ts
Model.query({ client: trx });
Database.query({ client: trx });

Inherited from ​

ts
ExcutableQueryBuilderContract.useTransaction;

withSchema() ​

ts
withSchema(schema: string): this;

Parameters ​

ParameterType
schemastring

Returns ​

this

Inherited from ​

ts
ChainableContract.withSchema;

withScopes() ​

ts
withScopes<Scopes>(callback: (scopes: Scopes) => void): this;

Apply model query scopes on the query bulder

Type Parameters ​

Type Parameter
Scopes extends ExtractScopes<Model>

Parameters ​

ParameterType
callback(scopes: Scopes) => void

Returns ​

this


wrapExisting() ​

ts
wrapExisting(): this;

Returns ​

this

Inherited from ​

ts
ChainableContract.wrapExisting;