Definiert in: packages/db/src/query/builder/index.ts:37
• TContext extends Context = Context
new BaseQueryBuilder<TContext>(query): BaseQueryBuilder<TContext>
new BaseQueryBuilder<TContext>(query): BaseQueryBuilder<TContext>
Definiert in: packages/db/src/query/builder/index.ts:40
Partial<QueryIR> = {}
BaseQueryBuilder<TContext>
get fn(): object
get fn(): object
Definiert in: packages/db/src/query/builder/index.ts:645
Funktionale Varianten des Query Builders. Diese sind imperative Funktionen, die für jede Zeile aufgerufen werden. Warnung: Diese können nicht vom Query Compiler optimiert werden und können einige Arten von Optimierungen verhindern.
q.fn.select((row) => ({
name: row.user.name.toUpperCase(),
age: row.user.age + 1,
}))
q.fn.select((row) => ({
name: row.user.name.toUpperCase(),
age: row.user.age + 1,
}))
Objekt
Gruppierte Zeilen mit einer Funktion filtern, die auf jeder aggregierten Zeile operiert. Warnung: Dies kann nicht vom Query Compiler optimiert werden.
(row) => any
Eine Funktion, die eine aggregierte Zeile empfängt und einen Booleschen Wert zurückgibt.
QueryBuilder<TContext>
Ein QueryBuilder mit angewendetem funktionalem HAVING-Filter.
// Functional having (not optimized)
query
.from({ posts: postsCollection })
.groupBy(({posts}) => posts.userId)
.fn.having(row => row.count > 5)
// Functional having (not optimized)
query
.from({ posts: postsCollection })
.groupBy(({posts}) => posts.userId)
.fn.having(row => row.count > 5)
Felder mit einer Funktion auswählen, die auf jeder Zeile operiert. Warnung: Dies kann nicht vom Query Compiler optimiert werden.
• TFuncSelectResult
(row) => TFuncSelectResult
Eine Funktion, die eine Zeile empfängt und den ausgewählten Wert zurückgibt.
QueryBuilder<{ [K in string | number | symbol]: (Omit<TContext, "result"> & { result: { [K in string | number | symbol]: TFuncSelectResult[K] } })[K] }>
Ein QueryBuilder mit angewendeter funktionaler Auswahl.
// Functional select (not optimized)
query
.from({ users: usersCollection })
.fn.select(row => ({
name: row.users.name.toUpperCase(),
age: row.users.age + 1,
}))
// Functional select (not optimized)
query
.from({ users: usersCollection })
.fn.select(row => ({
name: row.users.name.toUpperCase(),
age: row.users.age + 1,
}))
Zeilen mit einer Funktion filtern, die auf jeder Zeile operiert. Warnung: Dies kann nicht vom Query Compiler optimiert werden.
(row) => any
Eine Funktion, die eine Zeile empfängt und einen Booleschen Wert zurückgibt.
QueryBuilder<TContext>
Ein QueryBuilder mit angewendeter funktionaler Filterung.
// Functional where (not optimized)
query
.from({ users: usersCollection })
.fn.where(row => row.users.name.startsWith('A'))
// Functional where (not optimized)
query
.from({ users: usersCollection })
.fn.where(row => row.users.name.startsWith('A'))
_getQuery(): QueryIR
_getQuery(): QueryIR
Definiert in: packages/db/src/query/builder/index.ts:731
QueryIR
distinct(): QueryBuilder<TContext>
distinct(): QueryBuilder<TContext>
Definiert in: packages/db/src/query/builder/index.ts:606
Gibt an, dass die Abfrage DISTINCT-Zeilen zurückgeben soll. Dedupliziert Zeilen basierend auf den ausgewählten Spalten.
QueryBuilder<TContext>
Ein QueryBuilder mit aktiviertem DISTINCT.
// Get countries our users are from
query
.from({ users: usersCollection })
.select(({users}) => users.country)
.distinct()
// Get countries our users are from
query
.from({ users: usersCollection })
.select(({users}) => users.country)
.distinct()
from<TSource>(source): QueryBuilder<{
baseSchema: { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] };
fromSourceName: keyof TSource & string;
hasJoins: false;
schema: { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] };
}>
from<TSource>(source): QueryBuilder<{
baseSchema: { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] };
fromSourceName: keyof TSource & string;
hasJoins: false;
schema: { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] };
}>
Definiert in: packages/db/src/query/builder/index.ts:94
Gibt die Quelltabelle oder Unterabfrage für die Abfrage an.
• TSource extends Source
TSource
Ein Objekt mit einem einzigen Schlüssel-Wert-Paar, wobei der Schlüssel der Tabellenalias und der Wert eine Collection oder eine Unterabfrage ist.
QueryBuilder<{ baseSchema: { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }; fromSourceName: keyof TSource & string; hasJoins: false; schema: { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }; }>
Ein QueryBuilder mit der angegebenen Quelle.
// Query from a collection
query.from({ users: usersCollection })
// Query from a subquery
const activeUsers = query.from({ u: usersCollection }).where(({u}) => u.active)
query.from({ activeUsers })
// Query from a collection
query.from({ users: usersCollection })
// Query from a subquery
const activeUsers = query.from({ u: usersCollection }).where(({u}) => u.active)
query.from({ activeUsers })
fullJoin<TSource>(source, onCallback): QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, "full">>
fullJoin<TSource>(source, onCallback): QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, "full">>
Definiert in: packages/db/src/query/builder/index.ts:285
Führt einen FULL JOIN mit einer anderen Tabelle oder Unterabfrage durch.
• TSource extends Source
TSource
Ein Objekt mit einem einzigen Schlüssel-Wert-Paar, wobei der Schlüssel der Tabellenalias und der Wert eine Collection oder eine Unterabfrage ist.
JoinOnCallback<MergeContext<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }>>
Eine Funktion, die Tabellenreferenzen empfängt und die Join-Bedingung zurückgibt.
QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, "full">>
Ein QueryBuilder mit der verfügbaren voll verknüpften Tabelle.
// Full join users with posts
query
.from({ users: usersCollection })
.fullJoin({ posts: postsCollection }, ({users, posts}) => eq(users.id, posts.userId))
// Full join users with posts
query
.from({ users: usersCollection })
.fullJoin({ posts: postsCollection }, ({users, posts}) => eq(users.id, posts.userId))
groupBy(callback): QueryBuilder<TContext>
groupBy(callback): QueryBuilder<TContext>
Definiert in: packages/db/src/query/builder/index.ts:529
Zeilen für die Aggregation nach einer oder mehreren Spalten gruppieren.
GroupByCallback<TContext>
Eine Funktion, die Tabellenreferenzen empfängt und die zu gruppierenden Felder zurückgibt.
QueryBuilder<TContext>
Ein QueryBuilder mit angewendeter Gruppierung (ermöglicht Aggregatfunktionen in SELECT und HAVING).
// Group by a single column
query
.from({ posts: postsCollection })
.groupBy(({posts}) => posts.userId)
.select(({posts, count}) => ({
userId: posts.userId,
postCount: count()
}))
// Group by multiple columns
query
.from({ sales: salesCollection })
.groupBy(({sales}) => [sales.region, sales.category])
.select(({sales, sum}) => ({
region: sales.region,
category: sales.category,
totalSales: sum(sales.amount)
}))
// Group by a single column
query
.from({ posts: postsCollection })
.groupBy(({posts}) => posts.userId)
.select(({posts, count}) => ({
userId: posts.userId,
postCount: count()
}))
// Group by multiple columns
query
.from({ sales: salesCollection })
.groupBy(({sales}) => [sales.region, sales.category])
.select(({sales, sum}) => ({
region: sales.region,
category: sales.category,
totalSales: sum(sales.amount)
}))
having(callback): QueryBuilder<TContext>
having(callback): QueryBuilder<TContext>
Definiert in: packages/db/src/query/builder/index.ts:365
Gruppierte Zeilen basierend auf aggregierten Bedingungen filtern.
WhereCallback<TContext>
Eine Funktion, die Tabellenreferenzen empfängt und einen Ausdruck zurückgibt.
QueryBuilder<TContext>
Ein QueryBuilder mit angewendeter HAVING-Bedingung.
// Filter groups by count
query
.from({ posts: postsCollection })
.groupBy(({posts}) => posts.userId)
.having(({posts}) => gt(count(posts.id), 5))
// Filter by average
query
.from({ orders: ordersCollection })
.groupBy(({orders}) => orders.customerId)
.having(({orders}) => gt(avg(orders.total), 100))
// Multiple having calls are ANDed together
query
.from({ orders: ordersCollection })
.groupBy(({orders}) => orders.customerId)
.having(({orders}) => gt(count(orders.id), 5))
.having(({orders}) => gt(avg(orders.total), 100))
// Filter groups by count
query
.from({ posts: postsCollection })
.groupBy(({posts}) => posts.userId)
.having(({posts}) => gt(count(posts.id), 5))
// Filter by average
query
.from({ orders: ordersCollection })
.groupBy(({orders}) => orders.customerId)
.having(({orders}) => gt(avg(orders.total), 100))
// Multiple having calls are ANDed together
query
.from({ orders: ordersCollection })
.groupBy(({orders}) => orders.customerId)
.having(({orders}) => gt(count(orders.id), 5))
.having(({orders}) => gt(avg(orders.total), 100))
innerJoin<TSource>(source, onCallback): QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, "inner">>
innerJoin<TSource>(source, onCallback): QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, "inner">>
Definiert in: packages/db/src/query/builder/index.ts:259
Führt einen INNER JOIN mit einer anderen Tabelle oder Unterabfrage durch.
• TSource extends Source
TSource
Ein Objekt mit einem einzigen Schlüssel-Wert-Paar, wobei der Schlüssel der Tabellenalias und der Wert eine Collection oder eine Unterabfrage ist.
JoinOnCallback<MergeContext<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }>>
Eine Funktion, die Tabellenreferenzen empfängt und die Join-Bedingung zurückgibt.
QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, "inner">>
Ein QueryBuilder mit der verfügbaren inner verknüpften Tabelle.
// Inner join users with posts
query
.from({ users: usersCollection })
.innerJoin({ posts: postsCollection }, ({users, posts}) => eq(users.id, posts.userId))
// Inner join users with posts
query
.from({ users: usersCollection })
.innerJoin({ posts: postsCollection }, ({users, posts}) => eq(users.id, posts.userId))
join<TSource, TJoinType>(
source,
onCallback,
type): QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, TJoinType>>
join<TSource, TJoinType>(
source,
onCallback,
type): QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, TJoinType>>
Definiert in: packages/db/src/query/builder/index.ts:137
Verknüpft eine andere Tabelle oder Unterabfrage mit der aktuellen Abfrage.
• TSource extends Source
• TJoinType extends "full" | "left" | "right" | "inner" = "left"
TSource
Ein Objekt mit einem einzigen Schlüssel-Wert-Paar, wobei der Schlüssel der Tabellenalias und der Wert eine Collection oder eine Unterabfrage ist.
JoinOnCallback<MergeContext<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }>>
Eine Funktion, die Tabellenreferenzen empfängt und die Join-Bedingung zurückgibt.
TJoinType = ...
Der Typ des Joins: 'inner', 'left', 'right' oder 'full' (standardmäßig 'left').
QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, TJoinType>>
Ein QueryBuilder mit der verfügbaren verknüpften Tabelle.
// Left join users with posts
query
.from({ users: usersCollection })
.join({ posts: postsCollection }, ({users, posts}) => eq(users.id, posts.userId))
// Inner join with explicit type
query
.from({ u: usersCollection })
.join({ p: postsCollection }, ({u, p}) => eq(u.id, p.userId), 'inner')
// Left join users with posts
query
.from({ users: usersCollection })
.join({ posts: postsCollection }, ({users, posts}) => eq(users.id, posts.userId))
// Inner join with explicit type
query
.from({ u: usersCollection })
.join({ p: postsCollection }, ({u, p}) => eq(u.id, p.userId), 'inner')
// Join mit einer Unterabfrage const activeUsers = query.from({ u: usersCollection }).where(({u}) => u.active) query .from({ activeUsers }) .join({ p: postsCollection }, ({u, p}) => eq(u.id, p.userId))
leftJoin<TSource>(source, onCallback): QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, "left">>
leftJoin<TSource>(source, onCallback): QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, "left">>
Definiert in: packages/db/src/query/builder/index.ts:207
Führt einen LEFT JOIN mit einer anderen Tabelle oder Unterabfrage durch.
• TSource extends Source
TSource
Ein Objekt mit einem einzigen Schlüssel-Wert-Paar, wobei der Schlüssel der Tabellenalias und der Wert eine Collection oder eine Unterabfrage ist.
JoinOnCallback<MergeContext<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }>>
Eine Funktion, die Tabellenreferenzen empfängt und die Join-Bedingung zurückgibt.
QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, "left">>
Ein QueryBuilder mit der verfügbaren links verknüpften Tabelle.
// Left join users with posts
query
.from({ users: usersCollection })
.leftJoin({ posts: postsCollection }, ({users, posts}) => eq(users.id, posts.userId))
// Left join users with posts
query
.from({ users: usersCollection })
.leftJoin({ posts: postsCollection }, ({users, posts}) => eq(users.id, posts.userId))
limit(count): QueryBuilder<TContext>
limit(count): QueryBuilder<TContext>
Definiert in: packages/db/src/query/builder/index.ts:561
Begrenzt die Anzahl der von der Abfrage zurückgegebenen Zeilen. orderBy ist für limit erforderlich.
number
Maximale Anzahl der zurückzugebenden Zeilen.
QueryBuilder<TContext>
Ein QueryBuilder mit angewendetem Limit.
// Get top 5 posts by likes
query
.from({ posts: postsCollection })
.orderBy(({posts}) => posts.likes, 'desc')
.limit(5)
// Get top 5 posts by likes
query
.from({ posts: postsCollection })
.orderBy(({posts}) => posts.likes, 'desc')
.limit(5)
offset(count): QueryBuilder<TContext>
offset(count): QueryBuilder<TContext>
Definiert in: packages/db/src/query/builder/index.ts:585
Überspringt eine Anzahl von Zeilen, bevor Ergebnisse zurückgegeben werden. orderBy ist für offset erforderlich.
number
Anzahl der zu überspringenden Zeilen.
QueryBuilder<TContext>
Ein QueryBuilder mit angewendetem Offset.
// Get second page of results
query
.from({ posts: postsCollection })
.orderBy(({posts}) => posts.createdAt, 'desc')
.offset(page * pageSize)
.limit(pageSize)
// Get second page of results
query
.from({ posts: postsCollection })
.orderBy(({posts}) => posts.createdAt, 'desc')
.offset(page * pageSize)
.limit(pageSize)
orderBy(callback, direction): QueryBuilder<TContext>
orderBy(callback, direction): QueryBuilder<TContext>
Definiert in: packages/db/src/query/builder/index.ts:479
Sortiert die Abfrageergebnisse nach einer oder mehreren Spalten.
OrderByCallback<TContext>
Eine Funktion, die Tabellenreferenzen empfängt und das zu sortierende Feld zurückgibt.
OrderByDirection = ...
Sortierrichtung: 'asc' für aufsteigend, 'desc' für absteigend (standardmäßig 'asc').
QueryBuilder<TContext>
Ein QueryBuilder mit angewendeter Sortierung.
// Sort by a single column
query
.from({ users: usersCollection })
.orderBy(({users}) => users.name)
// Sort descending
query
.from({ users: usersCollection })
.orderBy(({users}) => users.createdAt, 'desc')
// Multiple sorts (chain orderBy calls)
query
.from({ users: usersCollection })
.orderBy(({users}) => users.lastName)
.orderBy(({users}) => users.firstName)
// Sort by a single column
query
.from({ users: usersCollection })
.orderBy(({users}) => users.name)
// Sort descending
query
.from({ users: usersCollection })
.orderBy(({users}) => users.createdAt, 'desc')
// Multiple sorts (chain orderBy calls)
query
.from({ users: usersCollection })
.orderBy(({users}) => users.lastName)
.orderBy(({users}) => users.firstName)
rightJoin<TSource>(source, onCallback): QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, "right">>
rightJoin<TSource>(source, onCallback): QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, "right">>
Definiert in: packages/db/src/query/builder/index.ts:233
Führt einen RIGHT JOIN mit einer anderen Tabelle oder Unterabfrage durch.
• TSource extends Source
TSource
Ein Objekt mit einem einzigen Schlüssel-Wert-Paar, wobei der Schlüssel der Tabellenalias und der Wert eine Collection oder eine Unterabfrage ist.
JoinOnCallback<MergeContext<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }>>
Eine Funktion, die Tabellenreferenzen empfängt und die Join-Bedingung zurückgibt.
QueryBuilder<MergeContextWithJoinType<TContext, { [K in string | number | symbol]: { [K in string | number | symbol]: TSource[K] extends CollectionImpl<U, string | number, {}, StandardSchemaV1<unknown, unknown>, U> ? U : TSource[K] extends QueryBuilder<TContext> ? { [K in string | number | symbol]: ((...)[(...)] extends object ? any[any] : (...) extends (...) ? (...) : (...))[K] } : never }[K] }, "right">>
Ein QueryBuilder mit der verfügbaren rechts verknüpften Tabelle.
// Right join users with posts
query
.from({ users: usersCollection })
.rightJoin({ posts: postsCollection }, ({users, posts}) => eq(users.id, posts.userId))
// Right join users with posts
query
.from({ users: usersCollection })
.rightJoin({ posts: postsCollection }, ({users, posts}) => eq(users.id, posts.userId))
select<TSelectObject>(callback): QueryBuilder<{ [K in string | number | symbol]: (Omit<TContext, "result"> & { result: { [K in string | number | symbol]: ResultTypeFromSelect<TSelectObject>[K] } })[K] }>
select<TSelectObject>(callback): QueryBuilder<{ [K in string | number | symbol]: (Omit<TContext, "result"> & { result: { [K in string | number | symbol]: ResultTypeFromSelect<TSelectObject>[K] } })[K] }>
Definiert in: packages/db/src/query/builder/index.ts:412
Wählt spezifische Spalten oder berechnete Werte aus der Abfrage aus.
• TSelectObject extends Record<string, | BasicExpression | Aggregate<any> | RefProxy<any> | RefProxyFor<any>>
(refs) => TSelectObject
Eine Funktion, die Tabellenreferenzen empfängt und ein Objekt mit ausgewählten Feldern oder Ausdrücken zurückgibt.
QueryBuilder<{ [K in string | number | symbol]: (Omit<TContext, "result"> & { result: { [K in string | number | symbol]: ResultTypeFromSelect<TSelectObject>[K] } })[K] }>
Ein QueryBuilder, der nur die ausgewählten Felder zurückgibt.
// Select specific columns
query
.from({ users: usersCollection })
.select(({users}) => ({
name: users.name,
email: users.email
}))
// Select with computed values
query
.from({ users: usersCollection })
.select(({users}) => ({
fullName: concat(users.firstName, ' ', users.lastName),
ageInMonths: mul(users.age, 12)
}))
// Select with aggregates (requires GROUP BY)
query
.from({ posts: postsCollection })
.groupBy(({posts}) => posts.userId)
.select(({posts, count}) => ({
userId: posts.userId,
postCount: count(posts.id)
}))
// Select specific columns
query
.from({ users: usersCollection })
.select(({users}) => ({
name: users.name,
email: users.email
}))
// Select with computed values
query
.from({ users: usersCollection })
.select(({users}) => ({
fullName: concat(users.firstName, ' ', users.lastName),
ageInMonths: mul(users.age, 12)
}))
// Select with aggregates (requires GROUP BY)
query
.from({ posts: postsCollection })
.groupBy(({posts}) => posts.userId)
.select(({posts, count}) => ({
userId: posts.userId,
postCount: count(posts.id)
}))
where(callback): QueryBuilder<TContext>
where(callback): QueryBuilder<TContext>
Definiert in: packages/db/src/query/builder/index.ts:324
Filtert Zeilen basierend auf einer Bedingung.
WhereCallback<TContext>
Eine Funktion, die Tabellenreferenzen empfängt und einen Ausdruck zurückgibt.
QueryBuilder<TContext>
Ein QueryBuilder mit angewendeter WHERE-Bedingung.
// Simple condition
query
.from({ users: usersCollection })
.where(({users}) => gt(users.age, 18))
// Multiple conditions
query
.from({ users: usersCollection })
.where(({users}) => and(
gt(users.age, 18),
eq(users.active, true)
))
// Multiple where calls are ANDed together
query
.from({ users: usersCollection })
.where(({users}) => gt(users.age, 18))
.where(({users}) => eq(users.active, true))
// Simple condition
query
.from({ users: usersCollection })
.where(({users}) => gt(users.age, 18))
// Multiple conditions
query
.from({ users: usersCollection })
.where(({users}) => and(
gt(users.age, 18),
eq(users.active, true)
))
// Multiple where calls are ANDed together
query
.from({ users: usersCollection })
.where(({users}) => gt(users.age, 18))
.where(({users}) => eq(users.active, true))
Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.