@aicacia/db
    Preparing search index...

    Class QueryBuilder<T>

    QueryBuilder - fluent API for building JSON-serializable CTEs that can be compiled

    Type Parameters

    • T

    Implements

    Index

    Constructors

    Properties

    _cte: CTE<T>
    _joins: JoinConfig<T>[] = []

    Methods

    • Add a comparison filter with full operator control.

      Parameters

      • field: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never
      • operator: CTEComparisonOperator
      • value: unknown

      Returns IQueryBuilder<T>

    • Add contains filter.

      Parameters

      • field: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never
      • value: unknown

      Returns IQueryBuilder<T>

    • Add case-insensitive contains filter.

      Parameters

      • field: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never
      • value: unknown

      Returns IQueryBuilder<T>

    • Add equality filter.

      Parameters

      • field: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never
      • value: unknown

      Returns IQueryBuilder<T>

    • Add fuzzy contains filter.

      Parameters

      • field: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never
      • value: unknown

      Returns IQueryBuilder<T>

    • Add greater-than filter.

      Parameters

      • field: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never
      • value: unknown

      Returns IQueryBuilder<T>

    • Add greater-than-or-equal filter.

      Parameters

      • field: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never
      • value: unknown

      Returns IQueryBuilder<T>

    • Add inclusion filter.

      Parameters

      • field: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never
      • value: unknown

      Returns IQueryBuilder<T>

    • Add includes filter.

      Parameters

      • field: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never
      • value: unknown

      Returns IQueryBuilder<T>

    • Join another collection to the root query.

      The left-side field is required. The right-side field is optional when the joined collection exposes a keyField.

      Type Parameters

      • Right

      Parameters

      • rightCollection: ICollection<Right>
      • leftField: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never
      • OptionalrightField: Right extends object
            ? | Extract<keyof Right, string>
            | `${Extract<keyof Right, string>}.${NonNullable<
                Right[Extract<keyof Right, string>],
            > extends object
                ?
                    | Extract<keyof NonNullable<Right[Extract<(...), (...)>]>, string>
                    | `${Extract<keyof NonNullable<(...)[(...)]>, string>}.${NonNullable<
                        NonNullable<(...)>[Extract<(...), (...)>],
                    > extends object
                        ?
                            | Extract<keyof (...), string>
                            | `${Extract<(...), (...)>}.${Extract<(...), (...)>}`
                        : never}`
                : never}`
            : never
      • type: JoinType = "inner"

      Returns IQueryBuilder<T & JoinResult<Right>>

    • Add less-than filter.

      Parameters

      • field: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never
      • value: unknown

      Returns IQueryBuilder<T>

    • Add less-than-or-equal filter.

      Parameters

      • field: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never
      • value: unknown

      Returns IQueryBuilder<T>

    • Add not-equal filter.

      Parameters

      • field: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never
      • value: unknown

      Returns IQueryBuilder<T>

    • Order results by field

      Supports both top-level fields and nested paths using dot notation.

      Parameters

      • field: T extends object
            ? | Extract<keyof T, string>
            | `${Extract<keyof T, string>}.${NonNullable<T[Extract<keyof T, string>]> extends object
                ?
                    | Extract<keyof NonNullable<T[Extract<keyof (...), string>]>, string>
                    | `${Extract<keyof NonNullable<T[Extract<(...), (...)>]>, string>}.${NonNullable<
                        NonNullable<(...)[(...)]>[Extract<keyof (...), string>],
                    > extends object
                        ?
                            | Extract<keyof NonNullable<(...)>, string>
                            | `${Extract<keyof (...), string>}.${Extract<keyof (...), string>}`
                        : never}`
                : never}`
            : never

        Field name or nested path (e.g., 'name' or 'user.profile.name')

      • direction: OrderDirection = "asc"

        Sort direction ('asc' or 'desc', default: 'asc')

      Returns IQueryBuilder<T>

      collection.query().orderBy('name', 'asc')
      collection.query().orderBy('user.profile.age', 'desc')
    • Subscribe to query results

      Establishes a subscription to documents matching the query. The subscription begins immediately and will emit results as they change. Errors thrown in the onUpdate callback are caught and passed to onError if provided.

      Parameters

      • onUpdate: (docs: T[]) => void

        Called with documents matching the query. Errors thrown here are caught and sent to onError.

      • OptionalonError: (error: Error) => void

        Optional callback for errors. Called with adapter errors, filter evaluation errors, or subscriber callback errors. Non-recoverable: unsubscribe is recommended. To retry, create a new subscription.

      Returns UnsubscribeFn

      Unsubscribe function to clean up subscription and stop receiving updates