Skip to content

QdrantRepository

Defined in: qdrant-repository.ts:22

A Mantle VectorRepository<T> implementation backed by a Qdrant vector collection.

Records are stored as Qdrant points. The idField value is the Qdrant point ID; all other fields are stored in the point payload. Call upsertVector to attach a real embedding — save / saveAll insert a zero vector placeholder that is later replaced.

The collection is created automatically on the first write if it does not exist.

T extends Record<string, unknown>

The entity shape. Must extend Record<string, unknown>.

D = Partial<T>

The write shape (defaults to Partial<T>).

new QdrantRepository<T, D>(app): QdrantRepository<T, D>

Defined in: qdrant-repository.ts:49

MantleApplication

QdrantRepository<T, D>

protected readonly client: QdrantClient

Defined in: qdrant-repository.ts:25


abstract readonly collectionName: string

Defined in: qdrant-repository.ts:28

The Qdrant collection name to target.


readonly createdAtField: string = "createdAt"

Defined in: qdrant-repository.ts:37

Payload key written for auto-managed creation timestamps.

"createdAt"

readonly fieldMap: Record<string, string> = {}

Defined in: qdrant-repository.ts:45

Entity-field-to-payload-key overrides, for a collection whose payload keys don’t match the entity (e.g. a brownfield collection using snake_case). Does not apply to idField — the point id is never stored in the payload.

{}

readonly idField: string = "id"

Defined in: qdrant-repository.ts:33

The payload key that stores the record id.

"id"

readonly timestamps: boolean = true

Defined in: qdrant-repository.ts:35

When true, save / saveAll / updateById / patchById write ISO-8601 timestamps.

true

readonly updatedAtField: string = "updatedAt"

Defined in: qdrant-repository.ts:39

Payload key written for auto-managed update timestamps.

"updatedAt"

abstract readonly vectorSize: number

Defined in: qdrant-repository.ts:30

Number of dimensions for the vector space — must match the collection’s configuration.

count(params?): Promise<number>

Defined in: qdrant-repository.ts:359

QueryParams

Promise<number>

VectorRepository.count


deleteById(id): Promise<T>

Defined in: qdrant-repository.ts:347

Id

Promise<T>

VectorRepository.deleteById


deleteVector(id): Promise<T>

Defined in: qdrant-repository.ts:112

Delete a vector and its associated record

Id

Promise<T>

VectorRepository.deleteVector


describe(): RepositoryCapabilities

Defined in: qdrant-repository.ts:66

Optional capability introspection. All

RepositoryCapabilities

adapters implement it; user repositories may omit it.

VectorRepository.describe


protected ensureCollection(): Promise<void>

Defined in: qdrant-repository.ts:55

Promise<void>


findAll(params?): Promise<T[]>

Defined in: qdrant-repository.ts:118

QueryParams

Promise<T[]>

VectorRepository.findAll


findById(id): Promise<T | null>

Defined in: qdrant-repository.ts:228

Id

Promise<T | null>

VectorRepository.findById


findPage(params?): Promise<CursorPage<T>>

Defined in: qdrant-repository.ts:171

Fetch one page of results using Qdrant’s native scroll pagination. The returned cursor encodes Qdrant’s next_page_offset; pass it back as params.cursor for the next page. skip and sort are rejected — Qdrant does not return a next-page offset when order_by is in play, and offsets don’t compose with cursors.

QueryParams & object

Promise<CursorPage<T>>

VectorRepository.findPage


findSimilar(vector, topK, params?): Promise<T & object[]>

Defined in: qdrant-repository.ts:79

Every result carries the Qdrant match score as _score — HIGHER is more similar for Cosine/Dot collections.

number[]

number

QueryParams

Promise<T & object[]>

VectorRepository.findSimilar


protected fromPoint(id, payload): T

Defined in: qdrant-repository.ts:387

string | number

Record<string, unknown>

T


patchById(id, data): Promise<T>

Defined in: qdrant-repository.ts:317

Id

D

Promise<T>

VectorRepository.patchById


save(data): Promise<T>

Defined in: qdrant-repository.ts:242

D

Promise<T>

VectorRepository.save


saveAll(data): Promise<T[]>

Defined in: qdrant-repository.ts:264

D[]

Promise<T[]>

VectorRepository.saveAll


protected toEntityField(field): string

Defined in: qdrant-repository.ts:382

Translates a payload key back to its entity field name — the inverse of toField.

string

string


protected toField(field): string

Defined in: qdrant-repository.ts:377

Translates an entity field name to its payload key (fieldMap override, else identity).

string

string


protected toPayload(data): Record<string, unknown>

Defined in: qdrant-repository.ts:392

Record<string, unknown>

Record<string, unknown>


updateById(id, data): Promise<T>

Defined in: qdrant-repository.ts:291

Id

D

Promise<T>

VectorRepository.updateById


upsertVector(id, vector, data): Promise<T>

Defined in: qdrant-repository.ts:99

Upsert a record with its embedding vector

Id

number[]

Partial<T>

Promise<T>

VectorRepository.upsertVector


protected wrapError(err): Error

Defined in: qdrant-repository.ts:400

unknown

Error