Skip to content

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 ​

DORMClient

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; }>

Released under the MIT License.