@kubator/sdk v0.0.1
    Preparing search index...

    Interface Query<T>

    A composable, typed view of collection documents.

    interface Query<T extends object> {
        count(predicate?: FilterPredicate<T>): number;
        countAsync(): Promise<number>;
        filter(predicate?: FilterPredicate<T>): Query<T>;
        filterAsync(predicate?: FilterPredicate<T>): Promise<T[]>;
        findAsync(predicate: FilterPredicate<T>): Promise<T>;
        findAsync<TResult>(
            predicate: FilterPredicate<T>,
            mapper: (item: T) => TResult,
        ): Promise<TResult>;
        flatMap<TOut extends object>(
            mapper: (item: T) => Iterable<TOut>,
        ): Query<TOut>;
        join<TJoin extends object, TResult extends object>(
            other: Query<TJoin>,
            predicate: (left: T, right: TJoin) => boolean,
            selector: (left: T, right: TJoin) => TResult,
        ): Query<TResult>;
        join<TJoin extends object, TResult extends object>(
            other: Query<TJoin>,
            predicate: (left: T, right: TJoin) => boolean,
            selector: (left: T, right: TJoin) => TResult,
            joinType: "INNER",
        ): Query<TResult>;
        join<TJoin extends object, TResult extends object>(
            other: Query<TJoin>,
            predicate: (left: T, right: TJoin) => boolean,
            selector: (left: T, right: TJoin) => TResult,
            joinType: "LEFT",
        ): Query<TResult>;
        join<TJoin extends object, TResult extends object>(
            other: Query<TJoin>,
            predicate: (left: T, right: TJoin) => boolean,
            selector: (left: T, right: TJoin) => TResult,
            joinType: "RIGHT",
        ): Query<TResult>;
        join<TJoin extends object, TResult extends object>(
            other: Query<TJoin>,
            predicate: (left: T, right: TJoin) => boolean,
            selector: (left: T, right: TJoin) => TResult,
            joinType: "OUTER",
        ): Query<TResult>;
        map<TOut extends object>(mapper: (item: T) => TOut): Query<TOut>;
        orderBy(
            selector: keyof T | ((item: T) => unknown),
            mode?: "ascending" | "descending",
        ): Query<T>;
        skip(count: number): Query<T>;
        sumAsync(
            selector: (item: T) => number,
            defaultValue?: number,
        ): Promise<number>;
        take(count: number): Query<T>;
        toArray(): T[];
        toArrayAsync(): Promise<T[]>;
        tryFindAsync(predicate: FilterPredicate<T>): Promise<T>;
        tryFirst(): T;
        tryFirstAsync(): Promise<T>;
    }

    Type Parameters

    • T extends object

    Hierarchy (View Summary)

    Index
    • Counts documents in this query.

      Returns Promise<number>

    • Materializes documents matching the predicate.

      Parameters

      Returns Promise<T[]>

    • Projects each document to zero or more output documents.

      Type Parameters

      • TOut extends object

      Parameters

      • mapper: (item: T) => Iterable<TOut>

      Returns Query<TOut>

    • Combines matching rows from this query and another query.

      Type Parameters

      • TJoin extends object
      • TResult extends object

      Parameters

      Returns Query<TResult>

    • Explicitly combines only rows that match in both queries.

      Type Parameters

      • TJoin extends object
      • TResult extends object

      Parameters

      Returns Query<TResult>

    • Includes unmatched rows from this query, with an undefined right row.

      Type Parameters

      • TJoin extends object
      • TResult extends object

      Parameters

      Returns Query<TResult>

    • Includes unmatched rows from the other query, with an undefined left row.

      Type Parameters

      • TJoin extends object
      • TResult extends object

      Parameters

      Returns Query<TResult>

    • Includes unmatched rows from either query, with the missing row undefined.

      Type Parameters

      • TJoin extends object
      • TResult extends object

      Parameters

      Returns Query<TResult>

    • Projects each document to a new object shape.

      Type Parameters

      • TOut extends object

      Parameters

      • mapper: (item: T) => TOut

      Returns Query<TOut>

    • Sorts documents by a property or selector.

      Parameters

      • selector: keyof T | ((item: T) => unknown)
      • Optionalmode: "ascending" | "descending"

      Returns Query<T>

    • Skips the first count documents.

      Parameters

      • count: number

      Returns Query<T>

    • Sums values projected from matching documents.

      Parameters

      • selector: (item: T) => number
      • OptionaldefaultValue: number

      Returns Promise<number>

    • Limits this query to the first count documents.

      Parameters

      • count: number

      Returns Query<T>

    • Materializes this query synchronously.

      Returns T[]

    • Materializes this query as an array.

      Returns Promise<T[]>

    • Returns the first document, if present.

      Returns T

    • Returns the first document asynchronously, if present.

      Returns Promise<T>