@@ -5,7 +5,7 @@ title: BaseQueryBuilder
55
66# Class: BaseQueryBuilder\< TContext\>
77
8- Defined in: [ packages/db/src/query/builder/index.ts:49 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L49 )
8+ Defined in: [ packages/db/src/query/builder/index.ts:54 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L54 )
99
1010## Type Parameters
1111
@@ -21,7 +21,7 @@ Defined in: [packages/db/src/query/builder/index.ts:49](https://github.com/TanSt
2121new BaseQueryBuilder <TContext >(query ): BaseQueryBuilder < TContext > ;
2222```
2323
24- Defined in: [ packages/db/src/query/builder/index.ts:52 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L52 )
24+ Defined in: [ packages/db/src/query/builder/index.ts:57 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L57 )
2525
2626#### Parameters
2727
@@ -43,7 +43,7 @@ Defined in: [packages/db/src/query/builder/index.ts:52](https://github.com/TanSt
4343get fn (): object ;
4444```
4545
46- Defined in: [ packages/db/src/query/builder/index.ts:714 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L714 )
46+ Defined in: [ packages/db/src/query/builder/index.ts:729 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L729 )
4747
4848Functional variants of the query builder
4949These are imperative function that are called for ery row.
@@ -76,7 +76,7 @@ Warning: This cannot be optimized by the query compiler
7676
7777(` row ` ) => ` any `
7878
79- A function that receives an aggregated row and returns a boolean
79+ A function that receives an aggregated row (with $selected when select() was called) and returns a boolean
8080
8181###### Returns
8282
@@ -91,11 +91,8 @@ A QueryBuilder with functional having filter applied
9191query
9292 .from ({ posts: postsCollection })
9393 .groupBy (({posts }) => posts .userId )
94- .select (({posts }) => ({
95- userId: posts .userId ,
96- postCount: count (posts .id ),
97- }))
98- .fn .having (({ $selected }) => $selected .postCount > 5 )
94+ .select (({posts }) => ({ userId: posts .userId , count: count (posts .id ) }))
95+ .fn .having (({ $selected }) => $selected .count > 5 )
9996```
10097
10198###### select()
@@ -179,7 +176,7 @@ query
179176_getQuery (): QueryIR ;
180177```
181178
182- Defined in: [ packages/db/src/query/builder/index.ts:800 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L800 )
179+ Defined in: [ packages/db/src/query/builder/index.ts:816 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L816 )
183180
184181#### Returns
185182
@@ -193,7 +190,7 @@ Defined in: [packages/db/src/query/builder/index.ts:800](https://github.com/TanS
193190distinct (): QueryBuilder < TContext > ;
194191```
195192
196- Defined in: [ packages/db/src/query/builder/index.ts:653 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L653 )
193+ Defined in: [ packages/db/src/query/builder/index.ts:668 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L668 )
197194
198195Specify that the query should return distinct rows.
199196Deduplicates rows based on the selected columns.
@@ -222,7 +219,7 @@ query
222219findOne (): QueryBuilder < TContext & SingleResult > ;
223220```
224221
225- Defined in: [ packages/db/src/query/builder/index.ts:673 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L673 )
222+ Defined in: [ packages/db/src/query/builder/index.ts:688 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L688 )
226223
227224Specify that the query should return a single result
228225
@@ -255,7 +252,7 @@ from<TSource>(source): QueryBuilder<{
255252}>;
256253```
257254
258- Defined in: [ packages/db/src/query/builder/index.ts:131 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L131 )
255+ Defined in: [ packages/db/src/query/builder/index.ts:136 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L136 )
259256
260257Specify the source table or subquery for the query
261258
@@ -303,7 +300,7 @@ query.from({ activeUsers })
303300fullJoin <TSource >(source , onCallback ): QueryBuilder < MergeContextWithJoinType < TContext , SchemaFromSource < TSource > , " full" >> ;
304301```
305302
306- Defined in: [ packages/db/src/query/builder/index.ts:322 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L322 )
303+ Defined in: [ packages/db/src/query/builder/index.ts:327 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L327 )
307304
308305Perform a FULL JOIN with another table or subquery
309306
@@ -350,7 +347,7 @@ query
350347groupBy (callback ): QueryBuilder < TContext > ;
351348```
352349
353- Defined in: [ packages/db/src/query/builder/index.ts:575 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L575 )
350+ Defined in: [ packages/db/src/query/builder/index.ts:590 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L590 )
354351
355352Group rows by one or more columns for aggregation
356353
@@ -399,7 +396,7 @@ query
399396having (callback ): QueryBuilder < TContext > ;
400397```
401398
402- Defined in: [ packages/db/src/query/builder/index.ts:409 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L409 )
399+ Defined in: [ packages/db/src/query/builder/index.ts:414 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L414 )
403400
404401Filter grouped rows based on aggregate conditions
405402
@@ -432,17 +429,6 @@ query
432429 .groupBy (({orders }) => orders .customerId )
433430 .having (({orders }) => gt (avg (orders .total ), 100 ))
434431
435- // Filter using SELECT fields via $selected
436- query
437- .from ({ orders: ordersCollection })
438- .groupBy (({orders }) => orders .customerId )
439- .select (({orders }) => ({
440- customerId: orders .customerId ,
441- totalSpent: sum (orders .amount ),
442- orderCount: count (orders .id ),
443- }))
444- .having (({ $selected }) => gt ($selected .totalSpent , 1000 ))
445-
446432// Multiple having calls are ANDed together
447433query
448434 .from ({ orders: ordersCollection })
@@ -459,7 +445,7 @@ query
459445innerJoin <TSource >(source , onCallback ): QueryBuilder < MergeContextWithJoinType < TContext , SchemaFromSource < TSource > , " inner" >> ;
460446```
461447
462- Defined in: [ packages/db/src/query/builder/index.ts:296 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L296 )
448+ Defined in: [ packages/db/src/query/builder/index.ts:301 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L301 )
463449
464450Perform an INNER JOIN with another table or subquery
465451
@@ -509,7 +495,7 @@ join<TSource, TJoinType>(
509495type ): QueryBuilder < MergeContextWithJoinType < TContext , SchemaFromSource < TSource > , TJoinType >> ;
510496```
511497
512- Defined in: [ packages/db/src/query/builder/index.ts:174 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L174 )
498+ Defined in: [ packages/db/src/query/builder/index.ts:179 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L179 )
513499
514500Join another table or subquery to the current query
515501
@@ -577,7 +563,7 @@ query
577563leftJoin <TSource >(source , onCallback ): QueryBuilder < MergeContextWithJoinType < TContext , SchemaFromSource < TSource > , " left" >> ;
578564```
579565
580- Defined in: [ packages/db/src/query/builder/index.ts:244 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L244 )
566+ Defined in: [ packages/db/src/query/builder/index.ts:249 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L249 )
581567
582568Perform a LEFT JOIN with another table or subquery
583569
@@ -624,7 +610,7 @@ query
624610limit (count ): QueryBuilder < TContext > ;
625611```
626612
627- Defined in: [ packages/db/src/query/builder/index.ts:608 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L608 )
613+ Defined in: [ packages/db/src/query/builder/index.ts:623 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L623 )
628614
629615Limit the number of rows returned by the query
630616` orderBy ` is required for ` limit `
@@ -661,7 +647,7 @@ query
661647offset (count ): QueryBuilder < TContext > ;
662648```
663649
664- Defined in: [ packages/db/src/query/builder/index.ts:632 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L632 )
650+ Defined in: [ packages/db/src/query/builder/index.ts:647 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L647 )
665651
666652Skip a number of rows before returning results
667653` orderBy ` is required for ` offset `
@@ -699,7 +685,7 @@ query
699685orderBy (callback , options ): QueryBuilder < TContext > ;
700686```
701687
702- Defined in: [ packages/db/src/query/builder/index.ts:504 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L504 )
688+ Defined in: [ packages/db/src/query/builder/index.ts:514 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L514 )
703689
704690Sort the query results by one or more columns
705691
@@ -734,17 +720,6 @@ query
734720 .from ({ users: usersCollection })
735721 .orderBy (({users }) => users .createdAt , ' desc' )
736722
737- // Sort by SELECT fields via $selected
738- query
739- .from ({ posts: postsCollection })
740- .groupBy (({posts }) => posts .userId )
741- .select (({posts }) => ({
742- userId: posts .userId ,
743- postCount: count (posts .id ),
744- latestPost: max (posts .createdAt ),
745- }))
746- .orderBy (({ $selected }) => $selected .postCount , ' desc' )
747-
748723// Multiple sorts (chain orderBy calls)
749724query
750725 .from ({ users: usersCollection })
@@ -760,7 +735,7 @@ query
760735rightJoin <TSource >(source , onCallback ): QueryBuilder < MergeContextWithJoinType < TContext , SchemaFromSource < TSource > , " right" >> ;
761736```
762737
763- Defined in: [ packages/db/src/query/builder/index.ts:270 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L270 )
738+ Defined in: [ packages/db/src/query/builder/index.ts:275 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L275 )
764739
765740Perform a RIGHT JOIN with another table or subquery
766741
@@ -807,7 +782,7 @@ query
807782select <TSelectObject >(callback ): QueryBuilder < WithResult < TContext , ResultTypeFromSelect < TSelectObject >>> ;
808783```
809784
810- Defined in: [ packages/db/src/query/builder/index.ts:463 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L463 )
785+ Defined in: [ packages/db/src/query/builder/index.ts:473 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L473 )
811786
812787Select specific columns or computed values from the query
813788
@@ -868,7 +843,7 @@ query
868843where (callback ): QueryBuilder < TContext > ;
869844```
870845
871- Defined in: [ packages/db/src/query/builder/index.ts:361 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L361 )
846+ Defined in: [ packages/db/src/query/builder/index.ts:366 ] ( https://github.com/TanStack/db/blob/main/packages/db/src/query/builder/index.ts#L366 )
872847
873848Filter rows based on a condition
874849
0 commit comments