DB Docs
API Reference
- Core API Reference
- Collection
- createCollection
- liveQueryCollectionOptions
- createLiveQueryCollection
- createOptimisticAction
- createTransaction
- Electric DB Collection
- electricCollectionOptions
- Query DB Collection
- queryCollectionOptions
- RxDB DB Collection
- rxdbCollectionOptions
- PowerSync Collection
- powerSyncCollectionOptions
- createIndexedDB
- indexedDBCollectionOptions
- React Hooks
- useLiveQuery
AI/LLM: This documentation page is available in plain markdown format at/db/latest/docs/reference/functions/createLiveQueryCollection.md
API Reference
createLiveQueryCollection
Call Signature#
ts
function createLiveQueryCollection<TQueryFn, TQuery>(query): CollectionForContext<ExtractContext<TQuery>, RootQueryResult<ExtractContext<TQuery>>, {
}> & object;Defined in: packages/db/src/query/live-query-collection.ts:128
Creates a live query collection directly
Type Parameters#
TQueryFn#
TQueryFn extends (q) => QueryBuilder<any>
TQuery#
TQuery extends QueryBuilder<any> = ReturnType<TQueryFn>
Parameters#
query#
TQueryFn & RootQueryFn<TQuery>
Returns#
CollectionForContext<ExtractContext<TQuery>, RootQueryResult<ExtractContext<TQuery>>, { }> & object
Example#
ts
// Minimal usage - just pass a query function
const activeUsers = createLiveQueryCollection(
(q) => q
.from({ user: usersCollection })
.where(({ user }) => eq(user.active, true))
.select(({ user }) => ({ id: user.id, name: user.name }))
)
// Full configuration with custom options
const searchResults = createLiveQueryCollection({
id: "search-results", // Custom ID (auto-generated if omitted)
query: (q) => q
.from({ post: postsCollection })
.where(({ post }) => like(post.title, `%${searchTerm}%`))
.select(({ post }) => ({
id: post.id,
title: post.title,
excerpt: post.excerpt,
})),
getKey: (item) => item.id, // Custom key function (uses stream key if omitted)
utils: {
updateSearchTerm: (newTerm: string) => {
// Custom utility functions
}
}
})Call Signature#
ts
function createLiveQueryCollection<TQuery, TContext, TUtils>(config): CollectionForContext<TContext, RootQueryResult<TContext>, {
}> & object;Defined in: packages/db/src/query/live-query-collection.ts:141
Creates a live query collection directly
Type Parameters#
TQuery#
TQuery extends QueryBuilder<any>
TContext#
TContext extends Context = ExtractContext<TQuery>
TUtils#
TUtils extends UtilsRecord = { }
Parameters#
config#
LiveQueryCollectionConfig<TContext, RootQueryResult<TContext>> & object
Returns#
CollectionForContext<TContext, RootQueryResult<TContext>, { }> & object
Example#
ts
// Minimal usage - just pass a query function
const activeUsers = createLiveQueryCollection(
(q) => q
.from({ user: usersCollection })
.where(({ user }) => eq(user.active, true))
.select(({ user }) => ({ id: user.id, name: user.name }))
)
// Full configuration with custom options
const searchResults = createLiveQueryCollection({
id: "search-results", // Custom ID (auto-generated if omitted)
query: (q) => q
.from({ post: postsCollection })
.where(({ post }) => like(post.title, `%${searchTerm}%`))
.select(({ post }) => ({
id: post.id,
title: post.title,
excerpt: post.excerpt,
})),
getKey: (item) => item.id, // Custom key function (uses stream key if omitted)
utils: {
updateSearchTerm: (newTerm: string) => {
// Custom utility functions
}
}
})