FindServerArgs
Defined in: packages/core/src/api/find/server.ts:49
Server-side args for find. Extends GenericQueryServerParams
to inherit ctx, populate, depth, and config (with their mutual-exclusion
constraints). All query-chain options map to ctx.db.query() equivalents
applied in order: withIndex → order → filter → take.
Extends
Section titled “Extends”GenericQueryServerParams<DataModel,TCollectionSlug,TPopulate,D>
Type Parameters
Section titled “Type Parameters”DataModel
Section titled “DataModel”DataModel extends GenericDataModel
The Convex data model (inferred from ctx).
TCollectionSlug
Section titled “TCollectionSlug”TCollectionSlug extends CollectionSlug
Collection slug.
TPopulate
Section titled “TPopulate”TPopulate extends PopulateShape<TCollectionSlug>
Populate object.
D extends number = 0
Depth literal (0 = no depth, default).
Properties
Section titled “Properties”access?
Section titled “access?”
optionalaccess?:AccessCallOptions<QueryCallAction>
Defined in: packages/core/src/api/types.ts:216
Per-call access overrides.
Inherited from
Section titled “Inherited from”GenericQueryServerParams.access
optionalauth?:VexApiAuth
Defined in: packages/core/src/api/types.ts:223
The auth config of the current user making the query.
Example
Section titled “Example”{ user: {...}, organization: {...} }Inherited from
Section titled “Inherited from”collection
Section titled “collection”collection:
TCollectionSlug
Defined in: packages/core/src/api/find/server.ts:56
The collection to query — must match a registered collection slug.
config?
Section titled “config?”
optionalconfig?: [TPopulate] extends [Record<string,never>] ?VexConfig:never
Defined in: packages/core/src/api/types.ts:241
The resolved VexConfig. Required alongside depth; passed
from the queryApi factory closure so the Convex handler has schema info.
Inherited from
Section titled “Inherited from”GenericQueryServerParams.config
ctx:
GenericQueryCtx<DataModel>
Defined in: packages/core/src/api/types.ts:225
Discriminator: server args MUST supply a Convex query context.
Inherited from
Section titled “Inherited from”depth?
Section titled “depth?”
optionaldepth?: [TPopulate] extends [Record<string,never>] ?D:never
Defined in: packages/core/src/api/types.ts:236
Auto-populate all relationship fields to this many levels.
Becomes never when TPopulate is non-empty. Use populate for
consumer-facing code; this is an internal escape hatch for CollectionListView.
Inherited from
Section titled “Inherited from”GenericQueryServerParams.depth
filter?
Section titled “filter?”
optionalfilter?: (q) =>ExpressionOrValue<boolean>
Defined in: packages/core/src/api/find/server.ts:83
Filter predicate applied after index narrowing. Equivalent to
.filter(q => q.eq(q.field("published"), true)) on the Convex query.
Prefer withIndex for performance — filter scans every document
in the range and is O(n). Use filter for secondary conditions that
can’t be expressed as index equality ranges.
Parameters
Section titled “Parameters”FilterBuilder<NamedTableInfo<DataModel, TCollectionSlug extends TableNamesInDataModel<DataModel> ? TCollectionSlug : never>>
Returns
Section titled “Returns”ExpressionOrValue<boolean>
Example
Section titled “Example”find({ ctx, collection: "posts", filter: q => q.eq(q.field("published"), true) })limit?
Section titled “limit?”
optionallimit?:number
Defined in: packages/core/src/api/find/server.ts:62
Maximum number of documents to return. Defaults to 100.
Applied as the terminal .take(n) on the Convex query.
order?
Section titled “order?”
optionalorder?:"asc"|"desc"
Defined in: packages/core/src/api/find/server.ts:68
Result ordering. Equivalent to .order("asc" | "desc") on the Convex
query. Defaults to "asc" (insertion order).
paginationOpts?
Section titled “paginationOpts?”
optionalpaginationOpts?:PaginationOptions
Defined in: packages/core/src/api/find/server.ts:127
Pagination options. When provided, the function returns a PaginationResult
with { page, continueCursor, isDone } instead of a plain array.
Uses Convex’s native .paginate(opts) API under the hood.
populate?
Section titled “populate?”
optionalpopulate?: [D] extends [0] ?TPopulate:never
Defined in: packages/core/src/api/types.ts:230
Recursive populate object, type-narrowed against RelationshipKeysOf<TCollectionSlug>.
Mutually exclusive with depth — becomes never when D ≠ 0.
Inherited from
Section titled “Inherited from”GenericQueryServerParams.populate
withIndex?
Section titled “withIndex?”
optionalwithIndex?:TCollectionSlugextendsTableNamesInDataModel<DataModel> ?object:never
Defined in: packages/core/src/api/find/server.ts:105
Index to use for the query, with an optional equality/range constraint.
Equivalent to .withIndex(name, range?) on the Convex query.
Using an index is strongly preferred over filter for performance.
Example
Section titled “Example”find({ ctx, collection: "posts", withIndex: { name: "by_slug", range: q => q.eq("slug", "hello") } })find({ ctx, collection: "posts", withIndex: { name: "by_score", range: q => q.gte("score", 50) } })find({ ctx, collection: "posts", withIndex: { name: "by_publishedAt" } })