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>


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;