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.