routier-collection / datastore/src / JoinQueryable
Class: JoinQueryable<TOuter, Shape>
Defined in: datastore/src/queryable/JoinQueryable.ts:29
Extends
QueryableExecutor<TOuter,Shape>
Type Parameters
TOuter
TOuter extends object
Shape
Shape
Constructors
Constructor
new JoinQueryable<
TOuter,Shape>(dependencies,request):JoinQueryable<TOuter,Shape>
Defined in: datastore/src/queryable/JoinQueryable.ts:31
Parameters
dependencies
CollectionDependencies<TOuter>
request
RequestContext<TOuter>
Returns
JoinQueryable<TOuter, Shape>
Overrides
QueryableExecutor<TOuter, Shape>.constructor
Methods
where()
Call Signature
where(
expression):JoinQueryable<TOuter,Shape>
Defined in: datastore/src/queryable/JoinQueryable.ts:58
Filters the pairs.
Runs AFTER the join, over the tuples, so a condition spanning both sides (([p, m]) => p.rank > m.rank) is expressible here and nowhere else. Correct on every backend; accelerated only where the query builder can split a single-side conjunct off and push it down.
Parameters
expression
Filter<Shape>
Returns
JoinQueryable<TOuter, Shape>
Call Signature
where<
P>(selector,params):JoinQueryable<TOuter,Shape>
Defined in: datastore/src/queryable/JoinQueryable.ts:59
Filters the pairs.
Runs AFTER the join, over the tuples, so a condition spanning both sides (([p, m]) => p.rank > m.rank) is expressible here and nowhere else. Correct on every backend; accelerated only where the query builder can split a single-side conjunct off and push it down.
Type Parameters
P
P extends object
Parameters
selector
ParamsFilter<Shape, P>
params
P
Returns
JoinQueryable<TOuter, Shape>
map()
map<
R>(selector):JoinQueryable<TOuter,R>
Defined in: datastore/src/queryable/JoinQueryable.ts:89
Projects each pair into a shape of your own.
Recorded with NO fields, unlike Queryable.map. Fields are property paths on one schema, resolved so a backend can select columns and a translator can deserialize them; a tuple has neither a schema nor columns, and both halves are already deserialized by the time this runs. An invented field list would name properties on a two-element array.
Type Parameters
R
R
Parameters
selector
GenericFunction<Shape, R>
Returns
JoinQueryable<TOuter, R>
sort()
sort(
selector):JoinQueryable<TOuter,Shape>
Defined in: datastore/src/queryable/JoinQueryable.ts:102
Orders the pairs.
Worth stating plainly: without this, pair ORDER IS UNDEFINED. It differs between a native SQL join and an in-memory hash join, and that is the one difference between interpretations a caller can observe.
Parameters
selector
GenericFunction<Shape, unknown>
Returns
JoinQueryable<TOuter, Shape>
sortDescending()
sortDescending(
selector):JoinQueryable<TOuter,Shape>
Defined in: datastore/src/queryable/JoinQueryable.ts:107
Parameters
selector
GenericFunction<Shape, unknown>
Returns
JoinQueryable<TOuter, Shape>
skip()
skip(
amount):JoinQueryable<TOuter,Shape>
Defined in: datastore/src/queryable/JoinQueryable.ts:125
Parameters
amount
number
Returns
JoinQueryable<TOuter, Shape>
take()
take(
amount):JoinQueryable<TOuter,Shape>
Defined in: datastore/src/queryable/JoinQueryable.ts:130
Parameters
amount
number
Returns
JoinQueryable<TOuter, Shape>
toArray()
toArray(
done):void
Defined in: datastore/src/queryable/JoinQueryable.ts:135
Parameters
done
CallbackResult<Shape[]>
Returns
void
toArrayAsync()
toArrayAsync():
Promise<Shape[]>
Defined in: datastore/src/queryable/JoinQueryable.ts:139
Returns
Promise<Shape[]>
first()
first(
done):void
Defined in: datastore/src/queryable/JoinQueryable.ts:143
Parameters
done
CallbackResult<Shape>
Returns
void
firstAsync()
firstAsync():
Promise<Shape>
Defined in: datastore/src/queryable/JoinQueryable.ts:159
Returns
Promise<Shape>
firstOrUndefined()
firstOrUndefined(
done):void
Defined in: datastore/src/queryable/JoinQueryable.ts:163
Parameters
done
CallbackResult<Shape>
Returns
void
firstOrUndefinedAsync()
firstOrUndefinedAsync():
Promise<Shape>
Defined in: datastore/src/queryable/JoinQueryable.ts:182
Returns
Promise<Shape>
count()
count(
done):void
Defined in: datastore/src/queryable/JoinQueryable.ts:186
Parameters
done
CallbackResult<number>
Returns
void
countAsync()
countAsync():
Promise<number>
Defined in: datastore/src/queryable/JoinQueryable.ts:195
Returns
Promise<number>