class Collection

A NoSQL document collection with Task/Stream semantics.

Provides CRUD operations (get, put, delete) that return Task for error handling, and find() which returns a Source for streaming query results with concurrent processing support.

Examples

Create from adapter

import { Collection, createInMemory } from "@anabranch/nosql";

const connector = createInMemory<User, (u: User) => boolean, string>();
const adapter = await connector.connect();
const users = Collection.create(adapter, "users");

Connect via connector

const connector = createInMemory<User, (u: User) => boolean, string>();
const users = await Collection.connect(connector, "users").run();

Constructors

Type Parameters

TDoc
TQuery
TKey

Static Methods

connect<
TDoc,
TQuery,
TKey,
>
(
name: string,
): Task<Collection<TDoc, TQuery, TKey>, CollectionConnectionFailed>

Connects to a collection via a connector and returns a Collection.

create<
TDoc,
TQuery,
TKey,
>
(
name: string,
): Collection<TDoc, TQuery, TKey>

Creates a Collection from an already-connected adapter.

Methods

Deletes a document by its key.

Queries documents and returns a stream of results.

get(key: TKey): Task<TDoc | null, CollectionGetFailed>

Fetches a single document by its key.

put(
key: TKey,
doc: TDoc,
): Task<void, CollectionPutFailed>

Upserts a document.

putMany(entries: { key: TKey; doc: TDoc; }[]): Task<void, CollectionPutManyFailed>

Batch writes multiple documents.