Class: QuerySet<S, O, R>
Defined in: src/query/queryset.ts:43
A lazy, chainable, awaitable query. Chaining methods return a new QuerySet and run nothing; the query executes only on a terminal operation — awaiting it, first(), exists(), count(), get(), update(), or delete().
Because it's a PromiseLike, await Model.objects.filter({...}) still resolves to the array of documents, so eager usage keeps working.
Type Parameters
S
S extends SchemaDef
O
O extends ModelOptions = ModelOptions
R
R = InferDoc<S, O>
Implements
PromiseLike<R[]>
Constructors
Constructor
new QuerySet<
S,O,R>(client,name,schema,options,state?,hooks?):QuerySet<S,O,R>
Defined in: src/query/queryset.ts:46
Parameters
client
name
string
schema
S
options
O
state?
QueryState = EMPTY_STATE
hooks?
ModelHooks = ...
Returns
QuerySet<S, O, R>
Methods
filter()
filter(
where):QuerySet<S,O,R>
Defined in: src/query/queryset.ts:58
Narrows the result to documents matching where (AND-ed with prior filters).
Parameters
where
FilterInput<S, O>
Returns
QuerySet<S, O, R>
exclude()
exclude(
where):QuerySet<S,O,R>
Defined in: src/query/queryset.ts:63
Removes documents matching where (Django exclude; supports a single relational hop).
Parameters
where
FilterInput<S, O>
Returns
QuerySet<S, O, R>
order_by()
order_by(...
fields):QuerySet<S,O,R>
Defined in: src/query/queryset.ts:68
Orders results. Prefix a field with - for descending: order_by("-priority", "name").
Parameters
fields
...string[]
Returns
QuerySet<S, O, R>
limit()
limit(
n):QuerySet<S,O,R>
Defined in: src/query/queryset.ts:78
Caps the number of results.
Parameters
n
number
Returns
QuerySet<S, O, R>
offset()
offset(
n):QuerySet<S,O,R>
Defined in: src/query/queryset.ts:83
Skips the first n results (pair with order_by for stable pagination).
Parameters
n
number
Returns
QuerySet<S, O, R>
session()
session(
session):QuerySet<S,O,R>
Defined in: src/query/queryset.ts:88
Binds all operations on this query to a transaction session.
Parameters
session
ClientSession
Returns
QuerySet<S, O, R>
select()
select<
K>(...fields):QuerySet<S,O,Pick<InferDoc<S,O>,"_id"| K & ("_id" | keyof S | keyof (O["timestamps"] extends true ? Timestamps : unknown))>>
Defined in: src/query/queryset.ts:93
Projects only the given fields (plus _id). Narrows the result type.
Type Parameters
K
K extends string
Parameters
fields
...K[]
Returns
QuerySet<S, O, Pick<InferDoc<S, O>, "_id" | K & ("_id" | keyof S | keyof (O["timestamps"] extends true ? Timestamps : unknown))>>
populate()
populate<
K>(...fields):QuerySet<S,O,Populated<R,K>>
Defined in: src/query/queryset.ts:109
Hydrates ref fields, replacing each id with the referenced document.
Type Parameters
K
K extends string
Parameters
fields
...K[]
Returns
QuerySet<S, O, Populated<R, K>>
then()
then<
T1,T2>(onFulfilled?,onRejected?):PromiseLike<T1|T2>
Defined in: src/query/queryset.ts:123
Makes the QuerySet awaitable — resolves to the array of matching documents.
Type Parameters
T1
T1 = R[]
T2
T2 = never
Parameters
onFulfilled?
((value) => T1 | PromiseLike<T1>) | null
onRejected?
((reason) => T2 | PromiseLike<T2>) | null
Returns
PromiseLike<T1 | T2>
Implementation of
PromiseLike.then
first()
first():
Promise<R|null>
Defined in: src/query/queryset.ts:131
The first matching document, or null.
Returns
Promise<R | null>
exists()
exists():
Promise<boolean>
Defined in: src/query/queryset.ts:137
Whether any document matches.
Returns
Promise<boolean>
count()
count():
Promise<number>
Defined in: src/query/queryset.ts:143
The number of matching documents (ignores limit/offset/order/select).
Returns
Promise<number>
get()
get(
where?):Promise<R>
Defined in: src/query/queryset.ts:153
Exactly one document; throws DoesNotExist / MultipleObjectsReturned.
Parameters
where?
FilterInput<S, O>
Returns
Promise<R>
update()
update(
patch):Promise<{matched:number;modified:number; }>
Defined in: src/query/queryset.ts:162
Partially validates patch, runs update hooks, and applies it to every match.
Parameters
patch
UpdateInput<S>
Returns
Promise<{ matched: number; modified: number; }>
delete()
delete():
Promise<{deleted:number; }>
Defined in: src/query/queryset.ts:190
Runs delete hooks and deletes every matching document.
Returns
Promise<{ deleted: number; }>