#
Class: QueryBuilder<T>knex.QueryBuilder
SQL query builder
#
Type parametersName | Type | Default |
---|---|---|
T | AnyEntity<T> | AnyEntity |
#
Constructors#
constructor+ new QueryBuilder<T>(entityName
: string, metadata
: MetadataStorage, driver
: AbstractSqlDriver<AbstractSqlConnection>, context?
: Transaction<any, any>, alias?
: string, connectionType?
: read | write, em?
: EntityManager<AbstractSqlDriver<AbstractSqlConnection>>): QueryBuilder<T>
#
Type parameters:Name | Type | Default |
---|---|---|
T | AnyEntity<T> | AnyEntity<any> |
#
Parameters:Name | Type |
---|---|
entityName | string |
metadata | MetadataStorage |
driver | AbstractSqlDriver<AbstractSqlConnection> |
context? | Transaction<any, any> |
alias | string |
connectionType? | read | write |
em? | EntityManager<AbstractSqlDriver<AbstractSqlConnection>> |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:59
#
Properties#
_aliasMap• Private
_aliasMap: Dictionary<string>
Defined in: packages/knex/src/query/QueryBuilder.ts:43
#
_cache• Private
Optional
_cache: number | boolean | [string, number]
Defined in: packages/knex/src/query/QueryBuilder.ts:54
#
_cond• Private
_cond: Dictionary<any>
Defined in: packages/knex/src/query/QueryBuilder.ts:45
#
_data• Private
_data: Dictionary<any>
Defined in: packages/knex/src/query/QueryBuilder.ts:46
#
_fields• Optional
_fields: Field<T>[]
Defined in: packages/knex/src/query/QueryBuilder.ts:35
#
_groupBy• Private
_groupBy: Field<T>[]
Defined in: packages/knex/src/query/QueryBuilder.ts:48
#
_having• Private
_having: Dictionary<any>
Defined in: packages/knex/src/query/QueryBuilder.ts:49
#
_joinedProps• Private
_joinedProps: Map<string, PopulateOptions<any>>
Defined in: packages/knex/src/query/QueryBuilder.ts:53
#
_joins• Private
_joins: Dictionary<JoinOptions>
Defined in: packages/knex/src/query/QueryBuilder.ts:42
#
_limit• Private
Optional
_limit: number
Defined in: packages/knex/src/query/QueryBuilder.ts:51
#
_offset• Private
Optional
_offset: number
Defined in: packages/knex/src/query/QueryBuilder.ts:52
#
_onConflict• Private
Optional
_onConflict: { fields
: string[] ; ignore?
: boolean ; merge?
: EntityData<T> ; where?
: FilterQuery<T> | FilterQuery<T> & Dictionary<any> }[]
Defined in: packages/knex/src/query/QueryBuilder.ts:50
#
_orderBy• Private
_orderBy: QueryOrderMap
Defined in: packages/knex/src/query/QueryBuilder.ts:47
#
_populate• _populate: PopulateOptions<T>[]
Defined in: packages/knex/src/query/QueryBuilder.ts:36
#
_populateMap• _populateMap: Dictionary<string>
Defined in: packages/knex/src/query/QueryBuilder.ts:37
#
_schema• Private
Optional
_schema: string
Defined in: packages/knex/src/query/QueryBuilder.ts:44
#
alias• Readonly
alias: string
#
aliasCounter• Private
aliasCounter: number= 1
Defined in: packages/knex/src/query/QueryBuilder.ts:39
#
finalized• Private
finalized: boolean= false
Defined in: packages/knex/src/query/QueryBuilder.ts:41
#
flags• Private
flags: Set<QueryFlag>
Defined in: packages/knex/src/query/QueryBuilder.ts:40
#
helper• Private
Readonly
helper: QueryBuilderHelper
Defined in: packages/knex/src/query/QueryBuilder.ts:59
#
knex• Private
Readonly
knex: Knex<any, unknown[]>
Defined in: packages/knex/src/query/QueryBuilder.ts:58
#
lockMode• Private
Optional
lockMode: LockMode
Defined in: packages/knex/src/query/QueryBuilder.ts:55
#
platform• Private
Readonly
platform: AbstractSqlPlatform
Defined in: packages/knex/src/query/QueryBuilder.ts:57
#
subQueries• Private
subQueries: Dictionary<string>
Defined in: packages/knex/src/query/QueryBuilder.ts:56
#
type• type: QueryType
Defined in: packages/knex/src/query/QueryBuilder.ts:34
#
Methods#
addSelectâ–¸ addSelect(fields
: Field<T> | Field<T>[]): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
fields | Field<T> | Field<T>[] |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:81
#
andWhereâ–¸ andWhere(cond
: FilterQuery<T> | FilterQuery<T> & Dictionary<any>): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
cond | FilterQuery<T> | FilterQuery<T> & Dictionary<any> |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:197
â–¸ andWhere(cond
: string, params?
: any[]): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
cond | string |
params? | any[] |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:198
#
asâ–¸ as(alias
: string): QueryBuilder<any, any>
Returns knex instance with sub-query aliased with given alias.
You can provide EntityName.propName
as alias, then the field name will be used based on the metadata
#
Parameters:Name | Type |
---|---|
alias | string |
Returns: QueryBuilder<any, any>
Defined in: packages/knex/src/query/QueryBuilder.ts:459
#
autoJoinPivotTableâ–¸ Private
autoJoinPivotTable(field
: string): void
#
Parameters:Name | Type |
---|---|
field | string |
Returns: void
Defined in: packages/knex/src/query/QueryBuilder.ts:721
#
cacheâ–¸ cache(config?
: number | boolean | [string, number]): QueryBuilder<T>
#
Parameters:Name | Type | Default value |
---|---|---|
config | number | boolean | [string, number] | true |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:309
#
cloneâ–¸ clone(): QueryBuilder<T>
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:472
#
countâ–¸ count(field?
: string | string[], distinct?
: boolean): QueryBuilder<T>
#
Parameters:Name | Type | Default value |
---|---|---|
field? | string | string[] | - |
distinct | boolean | false |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:105
#
deleteâ–¸ delete(cond?
: any): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
cond | any |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:97
#
executeâ–¸ execute<U>(method?
: all | get | run, mapResults?
: boolean): Promise<U>
Executes this QB and returns the raw results, mapped to the property names (unless disabled via last parameter).
Use method
to specify what kind of result you want to get (array/single/meta).
#
Type parameters:Name | Default |
---|---|
U | any |
#
Parameters:Name | Type | Default value |
---|---|---|
method | all | get | run | 'all' |
mapResults | boolean | true |
Returns: Promise<U>
Defined in: packages/knex/src/query/QueryBuilder.ts:391
#
finalizeâ–¸ Private
finalize(): void
Returns: void
Defined in: packages/knex/src/query/QueryBuilder.ts:634
#
getAliasForJoinPathâ–¸ getAliasForJoinPath(path?
: string): undefined | string
#
Parameters:Name | Type |
---|---|
path? | string |
Returns: undefined | string
Defined in: packages/knex/src/query/QueryBuilder.ts:367
#
getFieldsForJoinedLoadâ–¸ Protected
getFieldsForJoinedLoad<U>(prop
: EntityProperty<U>, alias
: string): Field<U>[]
#
Type parameters:Name | Type |
---|---|
U | AnyEntity<U> |
#
Parameters:Name | Type |
---|---|
prop | EntityProperty<U> |
alias | string |
Returns: Field<U>[]
Defined in: packages/knex/src/query/QueryBuilder.ts:146
#
getFormattedQueryâ–¸ getFormattedQuery(): string
Returns raw interpolated query string with all the parameters inlined.
Returns: string
Defined in: packages/knex/src/query/QueryBuilder.ts:362
#
getKnexâ–¸ getKnex(): QueryBuilder<any, any>
Returns: QueryBuilder<any, any>
Defined in: packages/knex/src/query/QueryBuilder.ts:484
#
getKnexQueryâ–¸ getKnexQuery(): QueryBuilder<any, any>
Returns: QueryBuilder<any, any>
Defined in: packages/knex/src/query/QueryBuilder.ts:314
#
getNextAliasâ–¸ getNextAlias(prefix?
: string): string
#
Parameters:Name | Type | Default value |
---|---|---|
prefix | string | 'e' |
Returns: string
Defined in: packages/knex/src/query/QueryBuilder.ts:382
#
getParamsâ–¸ getParams(): readonly Value[]
Returns the list of all parameters for this query.
Returns: readonly Value[]
Defined in: packages/knex/src/query/QueryBuilder.ts:355
#
getQueryâ–¸ getQuery(): string
Returns the query with parameters as wildcards.
Returns: string
Defined in: packages/knex/src/query/QueryBuilder.ts:348
#
getQueryBaseâ–¸ Private
getQueryBase(): QueryBuilder<any, any>
Returns: QueryBuilder<any, any>
Defined in: packages/knex/src/query/QueryBuilder.ts:593
#
getResultâ–¸ getResult(): Promise<T[]>
Alias for qb.getResultList()
Returns: Promise<T[]>
Defined in: packages/knex/src/query/QueryBuilder.ts:430
#
getResultListâ–¸ getResultList(): Promise<T[]>
Executes the query, returning array of results
Returns: Promise<T[]>
Defined in: packages/knex/src/query/QueryBuilder.ts:437
#
getSingleResultâ–¸ getSingleResult(): Promise<null | T>
Executes the query, returning the first result or null
Returns: Promise<null | T>
Defined in: packages/knex/src/query/QueryBuilder.ts:450
#
groupByâ–¸ groupBy(fields
: string | keyof T | (string | keyof T)[]): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
fields | string | keyof T | (string | keyof T)[] |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:215
#
havingâ–¸ having(cond?
: any, params?
: any[]): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
cond | any |
params? | any[] |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:220
#
ignoreâ–¸ ignore(): QueryBuilder<T>
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:235
#
initâ–¸ Private
init(type
: QueryType, data?
: any, cond?
: any): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
type | QueryType |
data? | any |
cond? | any |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:574
#
insertâ–¸ insert(data
: EntityData<T>): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
data | EntityData<T> |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:89
#
joinâ–¸ join(field
: string, alias
: string, cond?
: any, type?
: leftJoin | innerJoin | pivotJoin, path?
: string): QueryBuilder<T>
#
Parameters:Name | Type | Default value |
---|---|---|
field | string | - |
alias | string | - |
cond | any | - |
type | leftJoin | innerJoin | pivotJoin | 'innerJoin' |
path? | string | - |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:115
#
joinAndSelectâ–¸ joinAndSelect(field
: string, alias
: string, cond?
: any, type?
: leftJoin | innerJoin | pivotJoin, path?
: string): QueryBuilder<T>
#
Parameters:Name | Type | Default value |
---|---|---|
field | string | - |
alias | string | - |
cond | any | - |
type | leftJoin | innerJoin | pivotJoin | 'innerJoin' |
path? | string | - |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:124
#
joinReferenceâ–¸ Private
joinReference(field
: string, alias
: string, cond
: Dictionary<any>, type
: leftJoin | innerJoin | pivotJoin, path?
: string): EntityProperty<any>
#
Parameters:Name | Type |
---|---|
field | string |
alias | string |
cond | Dictionary<any> |
type | leftJoin | innerJoin | pivotJoin |
path? | string |
Returns: EntityProperty<any>
Defined in: packages/knex/src/query/QueryBuilder.ts:495
#
leftJoinâ–¸ leftJoin(field
: string, alias
: string, cond?
: any): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
field | string |
alias | string |
cond | any |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:120
#
leftJoinAndSelectâ–¸ leftJoinAndSelect(field
: string, alias
: string, cond?
: any): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
field | string |
alias | string |
cond | any |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:142
#
limitâ–¸ limit(limit?
: number, offset?
: number): QueryBuilder<T>
#
Parameters:Name | Type | Default value |
---|---|---|
limit? | number | - |
offset | number | 0 |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:268
#
mergeâ–¸ merge(data?
: EntityData<T>): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
data? | EntityData<T> |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:240
#
offsetâ–¸ offset(offset?
: number): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
offset? | number |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:278
#
onConflictâ–¸ onConflict(fields
: string | string[]): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
fields | string | string[] |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:229
#
orWhereâ–¸ orWhere(cond
: FilterQuery<T> | FilterQuery<T> & Dictionary<any>): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
cond | FilterQuery<T> | FilterQuery<T> & Dictionary<any> |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:203
â–¸ orWhere(cond
: string, params?
: any[]): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
cond | string |
params? | any[] |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:204
#
orderByâ–¸ orderBy(orderBy
: QueryOrderMap): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
orderBy | QueryOrderMap |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:209
#
populateâ–¸ populate(populate
: PopulateOptions<T>[]): QueryBuilder<T>
internal
#
Parameters:Name | Type |
---|---|
populate | PopulateOptions<T>[] |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:248
#
prepareFieldsâ–¸ Private
prepareFields<T, U>(fields
: Field<T>[], type?
: groupBy | where | sub-query): U[]
#
Type parameters:Name | Type | Default |
---|---|---|
T | AnyEntity<T> | - |
U | string | Raw<any> | string | Raw<any> |
#
Parameters:Name | Type | Default value |
---|---|---|
fields | Field<T>[] | - |
type | groupBy | where | sub-query | 'where' |
Returns: U[]
Defined in: packages/knex/src/query/QueryBuilder.ts:536
#
rawâ–¸ raw(sql
: string): Raw<any>
#
Parameters:Name | Type |
---|---|
sql | string |
Returns: Raw<any>
Defined in: packages/knex/src/query/QueryBuilder.ts:261
#
refâ–¸ ref(field
: string): Ref<string, {}>
internal
#
Parameters:Name | Type |
---|---|
field | string |
Returns: Ref<string, {}>
Defined in: packages/knex/src/query/QueryBuilder.ts:257
#
selectâ–¸ select(fields
: Field<T> | Field<T>[], distinct?
: boolean): QueryBuilder<T>
#
Parameters:Name | Type | Default value |
---|---|---|
fields | Field<T> | Field<T>[] | - |
distinct | boolean | false |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:71
#
setFlagâ–¸ setFlag(flag
: QueryFlag): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
flag | QueryFlag |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:299
#
setLockModeâ–¸ setLockMode(mode?
: LockMode): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
mode? | LockMode |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:289
#
truncateâ–¸ truncate(): QueryBuilder<T>
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:101
#
unsetFlagâ–¸ unsetFlag(flag
: QueryFlag): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
flag | QueryFlag |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:304
#
updateâ–¸ update(data
: EntityData<T>): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
data | EntityData<T> |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:93
#
whereâ–¸ where(cond
: FilterQuery<T> | FilterQuery<T> & Dictionary<any>, operator?
: $and | $or): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
cond | FilterQuery<T> | FilterQuery<T> & Dictionary<any> |
operator? | $and | $or |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:160
â–¸ where(cond
: string, params?
: any[], operator?
: $and | $or): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
cond | string |
params? | any[] |
operator? | $and | $or |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:161
#
withSchemaâ–¸ withSchema(schema?
: string): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
schema? | string |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:283
#
withSubQueryâ–¸ withSubQuery(subQuery
: QueryBuilder<any, any>, alias
: string): QueryBuilder<T>
#
Parameters:Name | Type |
---|---|
subQuery | QueryBuilder<any, any> |
alias | string |
Returns: QueryBuilder<T>
Defined in: packages/knex/src/query/QueryBuilder.ts:155
#
wrapModifySubQueryâ–¸ Private
wrapModifySubQuery(meta
: EntityMetadata<any>): void
#
Parameters:Name | Type |
---|---|
meta | EntityMetadata<any> |
Returns: void
Defined in: packages/knex/src/query/QueryBuilder.ts:707
#
wrapPaginateSubQueryâ–¸ Private
wrapPaginateSubQuery(meta
: EntityMetadata<any>): void
#
Parameters:Name | Type |
---|---|
meta | EntityMetadata<any> |
Returns: void
Defined in: packages/knex/src/query/QueryBuilder.ts:687