prorm API Reference
    Preparing search index...

    Variable defaultConst

    default: {
        Prorm: typeof Prorm;
        DataTypes: {
            STRING: (...args: any[]) => STRING & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            VARCHAR: (...args: any[]) => VARCHAR & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            CHAR: (...args: any[]) => CHAR & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            TEXT: (...args: any[]) => TEXT & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            TINYTEXT: (...args: any[]) => TINYTEXT & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            MEDIUMTEXT: (...args: any[]) => MEDIUMTEXT & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            LONGTEXT: (...args: any[]) => LONGTEXT & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            INTEGER: (...args: any[]) => INTEGER & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            TINYINT: (...args: any[]) => TINYINT & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            SMALLINT: (...args: any[]) => SMALLINT & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            MEDIUMINT: (...args: any[]) => MEDIUMINT & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            BIGINT: (...args: any[]) => BIGINT & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            FLOAT: (...args: any[]) => FLOAT & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            DOUBLE: (...args: any[]) => DOUBLE & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            DECIMAL: (...args: any[]) => DECIMAL & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            REAL: (...args: any[]) => REAL & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            BOOLEAN: (...args: any[]) => BOOLEAN & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            DATE: (...args: any[]) => DATE & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            DATEONLY: (...args: any[]) => DATEONLY & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            DATETIME: (...args: any[]) => DATETIME & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            TIMESTAMP: (...args: any[]) => TIMESTAMP & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            NOW: (...args: any[]) => NOW & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            TIME: (...args: any[]) => TIME & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            UUID: (...args: any[]) => UUID & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            UUIDV1: (...args: any[]) => UUIDV1 & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            UUIDV4: (...args: any[]) => UUIDV4 & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            JSON: (...args: any[]) => JSON & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            JSONB: (...args: any[]) => JSONB & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            HSTORE: (...args: any[]) => HSTORE & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            RANGE: (...args: any[]) => RANGE & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            INET: (...args: any[]) => INET & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            INET6: (...args: any[]) => INET & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            CIDR: (...args: any[]) => CIDR & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            MACADDR: (...args: any[]) => MACADDR & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            BLOB: (...args: any[]) => BLOB & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            TINYBLOB: (...args: any[]) => TINYBLOB & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            MEDIUMBLOB: (...args: any[]) => MEDIUMBLOB & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            LONGBLOB: (...args: any[]) => LONGBLOB & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            BINARY: (...args: any[]) => BINARY & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            VARBINARY: (...args: any[]) => VARBINARY & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            ENUM: (...args: any[]) => ENUM & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            ARRAY: (...args: any[]) => ARRAY & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            LIST: (...args: any[]) => LIST & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            STRUCT: (...args: any[]) => STRUCT & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            MAP: (...args: any[]) => MAP & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            UNION: (...args: any[]) => DUCKDB_UNION & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            GEOMETRY: (...args: any[]) => GEOMETRY & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            GEOGRAPHY: (...args: any[]) => GEOGRAPHY & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            POINT: (...args: any[]) => POINT & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            LINESTRING: (...args: any[]) => LINESTRING & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            POLYGON: (...args: any[]) => POLYGON & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            MULTIPOINT: (...args: any[]) => MULTIPOINT & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            MULTILINESTRING: (...args: any[]) => MULTILINESTRING & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            MULTIPOLYGON: (...args: any[]) => MULTIPOLYGON & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            GEOMETRYCOLLECTION: (...args: any[]) => GEOMETRYCOLLECTION & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            SET: (...args: any[]) => SET & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            JSONCOLUMN: (...args: any[]) => JSONColumn & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            VIRTUAL: (...args: any[]) => VIRTUAL & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            VIRTUALSTRING: (...args: any[]) => VIRTUALSTRING & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
            ALGORITHM: (...args: any[]) => ALGORITHM & {
                toSql: () => string;
                equals: (other: any) => boolean;
                serialize: (value: unknown) => unknown;
                key: string;
            };
        };
        Op: {
            and: symbol;
            or: symbol;
            not: symbol;
            eq: symbol;
            is: symbol;
            ne: symbol;
            gt: symbol;
            gte: symbol;
            lt: symbol;
            lte: symbol;
            like: symbol;
            notLike: symbol;
            iLike: symbol;
            notILike: symbol;
            startsWith: symbol;
            notStartsWith: symbol;
            endsWith: symbol;
            notEndsWith: symbol;
            substring: symbol;
            notSubstring: symbol;
            col: symbol;
            in: symbol;
            notIn: symbol;
            between: symbol;
            notBetween: symbol;
            isNull: symbol;
            isNotNull: symbol;
            exists: symbol;
            notExists: symbol;
            regexp: symbol;
            notRegexp: symbol;
            iRegexp: symbol;
            notIRegexp: symbol;
            any: symbol;
            all: symbol;
            containsKey: symbol;
            containsKeyPath: symbol;
            containsPath: symbol;
            strictLeft: symbol;
            strictRight: symbol;
            noExtendRight: symbol;
            noExtendLeft: symbol;
            adj: symbol;
            notAdj: symbol;
            arrayContains: symbol;
            arrayContainedBy: symbol;
            arrayOverlaps: symbol;
            arrayAny: symbol;
            arrayAll: symbol;
            contains: symbol;
            containedBy: symbol;
            keyExists: symbol;
            overlap: symbol;
            match: symbol;
            $json: symbol;
            jsonPath: symbol;
            jsonContains: symbol;
            jsonHasKey: symbol;
            jsonbExtract: symbol;
            jsonbExtractText: symbol;
            jsonbExtractPath: symbol;
            jsonbExtractPathText: symbol;
            jsonConcat: symbol;
            jsonDelete: symbol;
            jsonDeletePath: symbol;
            jsonPathExists: symbol;
            jsonPathQuery: symbol;
            jsonTypeOf: symbol;
            json(path: string): symbol;
            key(
                pathOrOptions: string | { path: string; value?: any },
            ): Record<string, any>;
            literal(value: string): LiteralValue;
            cast(value: any, type: string): CastExpression;
            extract(field: any, part: ExtractPart): ExtractExpression;
            conv(
                value: any,
                from: string | null | undefined,
                to: string,
            ): ConvExpression;
            where(
                column: string | { $col: string },
                operator: any,
                value?: any,
            ): Record<string, any> | { $where: { $col: string; [key: string]: any } };
            asc(field: string): OrderExpression;
            desc(field: string): OrderExpression;
            random(): OrderExpression;
            isNotNullPredicate(value: any): boolean;
            matchAgainst(
                columns: string | string[],
                options?: { mode?: "boolean" | "natural" },
            ): { $match: { columns: string[]; mode: "boolean" | "natural" } };
            matchFulltext(
                columns: string | string[],
            ): { $match: { columns: string[]; mode: "natural" } };
            toTsvector(
                column: string,
                config?: string,
            ): { $tsvector: { column: string; config: string } };
            toTsquery(
                query: string,
                config?: string,
            ): { $tsquery: { query: string; config: string } };
            stDistance: symbol;
            stWithin: symbol;
            stContains: symbol;
            stIntersects: symbol;
            stDWithin: symbol;
            stCrosses: symbol;
            stOverlaps: symbol;
            stTouches: symbol;
            stEquals: symbol;
            stIsValid: symbol;
        };
        Transaction: typeof Transaction;
    } = ...

    Type Declaration

    • Prorm: typeof Prorm
    • DataTypes: {
          STRING: (...args: any[]) => STRING & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          VARCHAR: (...args: any[]) => VARCHAR & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          CHAR: (...args: any[]) => CHAR & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          TEXT: (...args: any[]) => TEXT & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          TINYTEXT: (...args: any[]) => TINYTEXT & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          MEDIUMTEXT: (...args: any[]) => MEDIUMTEXT & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          LONGTEXT: (...args: any[]) => LONGTEXT & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          INTEGER: (...args: any[]) => INTEGER & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          TINYINT: (...args: any[]) => TINYINT & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          SMALLINT: (...args: any[]) => SMALLINT & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          MEDIUMINT: (...args: any[]) => MEDIUMINT & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          BIGINT: (...args: any[]) => BIGINT & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          FLOAT: (...args: any[]) => FLOAT & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          DOUBLE: (...args: any[]) => DOUBLE & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          DECIMAL: (...args: any[]) => DECIMAL & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          REAL: (...args: any[]) => REAL & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          BOOLEAN: (...args: any[]) => BOOLEAN & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          DATE: (...args: any[]) => DATE & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          DATEONLY: (...args: any[]) => DATEONLY & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          DATETIME: (...args: any[]) => DATETIME & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          TIMESTAMP: (...args: any[]) => TIMESTAMP & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          NOW: (...args: any[]) => NOW & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          TIME: (...args: any[]) => TIME & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          UUID: (...args: any[]) => UUID & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          UUIDV1: (...args: any[]) => UUIDV1 & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          UUIDV4: (...args: any[]) => UUIDV4 & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          JSON: (...args: any[]) => JSON & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          JSONB: (...args: any[]) => JSONB & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          HSTORE: (...args: any[]) => HSTORE & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          RANGE: (...args: any[]) => RANGE & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          INET: (...args: any[]) => INET & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          INET6: (...args: any[]) => INET & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          CIDR: (...args: any[]) => CIDR & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          MACADDR: (...args: any[]) => MACADDR & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          BLOB: (...args: any[]) => BLOB & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          TINYBLOB: (...args: any[]) => TINYBLOB & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          MEDIUMBLOB: (...args: any[]) => MEDIUMBLOB & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          LONGBLOB: (...args: any[]) => LONGBLOB & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          BINARY: (...args: any[]) => BINARY & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          VARBINARY: (...args: any[]) => VARBINARY & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          ENUM: (...args: any[]) => ENUM & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          ARRAY: (...args: any[]) => ARRAY & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          LIST: (...args: any[]) => LIST & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          STRUCT: (...args: any[]) => STRUCT & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          MAP: (...args: any[]) => MAP & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          UNION: (...args: any[]) => DUCKDB_UNION & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          GEOMETRY: (...args: any[]) => GEOMETRY & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          GEOGRAPHY: (...args: any[]) => GEOGRAPHY & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          POINT: (...args: any[]) => POINT & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          LINESTRING: (...args: any[]) => LINESTRING & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          POLYGON: (...args: any[]) => POLYGON & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          MULTIPOINT: (...args: any[]) => MULTIPOINT & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          MULTILINESTRING: (...args: any[]) => MULTILINESTRING & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          MULTIPOLYGON: (...args: any[]) => MULTIPOLYGON & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          GEOMETRYCOLLECTION: (...args: any[]) => GEOMETRYCOLLECTION & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          SET: (...args: any[]) => SET & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          JSONCOLUMN: (...args: any[]) => JSONColumn & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          VIRTUAL: (...args: any[]) => VIRTUAL & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          VIRTUALSTRING: (...args: any[]) => VIRTUALSTRING & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
          ALGORITHM: (...args: any[]) => ALGORITHM & {
              toSql: () => string;
              equals: (other: any) => boolean;
              serialize: (value: unknown) => unknown;
              key: string;
          };
      }
      • STRING: (...args: any[]) => STRING & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • VARCHAR: (...args: any[]) => VARCHAR & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • CHAR: (...args: any[]) => CHAR & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • TEXT: (...args: any[]) => TEXT & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • TINYTEXT: (...args: any[]) => TINYTEXT & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • MEDIUMTEXT: (...args: any[]) => MEDIUMTEXT & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • LONGTEXT: (...args: any[]) => LONGTEXT & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • INTEGER: (...args: any[]) => INTEGER & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • TINYINT: (...args: any[]) => TINYINT & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • SMALLINT: (...args: any[]) => SMALLINT & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • MEDIUMINT: (...args: any[]) => MEDIUMINT & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • BIGINT: (...args: any[]) => BIGINT & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • FLOAT: (...args: any[]) => FLOAT & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • DOUBLE: (...args: any[]) => DOUBLE & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • DECIMAL: (...args: any[]) => DECIMAL & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • REAL: (...args: any[]) => REAL & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • BOOLEAN: (...args: any[]) => BOOLEAN & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • DATE: (...args: any[]) => DATE & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • DATEONLY: (...args: any[]) => DATEONLY & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • DATETIME: (...args: any[]) => DATETIME & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • TIMESTAMP: (...args: any[]) => TIMESTAMP & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • NOW: (...args: any[]) => NOW & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • TIME: (...args: any[]) => TIME & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • UUID: (...args: any[]) => UUID & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • UUIDV1: (...args: any[]) => UUIDV1 & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • UUIDV4: (...args: any[]) => UUIDV4 & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • JSON: (...args: any[]) => JSON & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • JSONB: (...args: any[]) => JSONB & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • HSTORE: (...args: any[]) => HSTORE & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • RANGE: (...args: any[]) => RANGE & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • INET: (...args: any[]) => INET & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • INET6: (...args: any[]) => INET & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • CIDR: (...args: any[]) => CIDR & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • MACADDR: (...args: any[]) => MACADDR & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • BLOB: (...args: any[]) => BLOB & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • TINYBLOB: (...args: any[]) => TINYBLOB & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • MEDIUMBLOB: (...args: any[]) => MEDIUMBLOB & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • LONGBLOB: (...args: any[]) => LONGBLOB & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • BINARY: (...args: any[]) => BINARY & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • VARBINARY: (...args: any[]) => VARBINARY & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • ENUM: (...args: any[]) => ENUM & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }

        ENUM data type

        Either an array of values or individual string values

        // Array of values
        status: { type: DataTypes.ENUM(['active', 'inactive', 'pending']) }
        // Individual values
        role: DataTypes.ENUM('admin', 'user', 'guest')
      • ARRAY: (...args: any[]) => ARRAY & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • LIST: (...args: any[]) => LIST & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }

        LIST data type - DuckDB native variable-length list (elementType[])

        The data type of list elements

        tags: DataTypes.LIST(DataTypes.INTEGER)
        
      • STRUCT: (...args: any[]) => STRUCT & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }

        STRUCT data type - DuckDB native nested record (STRUCT(field TYPE, ...))

        A map of field name -> field data type

        point: DataTypes.STRUCT({ x: DataTypes.INTEGER, y: DataTypes.INTEGER })
        
      • MAP: (...args: any[]) => MAP & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }

        MAP data type - DuckDB native key/value map (MAP(keyType, valueType))

        The data type of map keys

        The data type of map values

        scores: DataTypes.MAP(DataTypes.STRING, DataTypes.INTEGER)
        
      • UNION: (...args: any[]) => DUCKDB_UNION & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }

        UNION data type - DuckDB native tagged union (UNION(tag TYPE, ...))

        A map of tag name -> alternative data type

        value: DataTypes.UNION({ num: DataTypes.INTEGER, str: DataTypes.STRING })
        
      • GEOMETRY: (...args: any[]) => GEOMETRY & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • GEOGRAPHY: (...args: any[]) => GEOGRAPHY & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • POINT: (...args: any[]) => POINT & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • LINESTRING: (...args: any[]) => LINESTRING & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • POLYGON: (...args: any[]) => POLYGON & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • MULTIPOINT: (...args: any[]) => MULTIPOINT & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • MULTILINESTRING: (...args: any[]) => MULTILINESTRING & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • MULTIPOLYGON: (...args: any[]) => MULTIPOLYGON & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • GEOMETRYCOLLECTION: (...args: any[]) => GEOMETRYCOLLECTION & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • SET: (...args: any[]) => SET & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • JSONCOLUMN: (...args: any[]) => JSONColumn & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • VIRTUAL: (...args: any[]) => VIRTUAL & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • VIRTUALSTRING: (...args: any[]) => VIRTUALSTRING & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }
      • ALGORITHM: (...args: any[]) => ALGORITHM & {
            toSql: () => string;
            equals: (other: any) => boolean;
            serialize: (value: unknown) => unknown;
            key: string;
        }

        ALGORITHM data type for hash algorithms Used for storing hashed values (passwords, checksums, etc.) Supports BCRYPT, MD5, SHA1, SHA256, SHA384, SHA512, ARGON2, PBKDF2, SCRYPT, etc.

        // Store password hash using BCRYPT (recommended for passwords)
        password: DataTypes.ALGORITHM({ algorithm: 'BCRYPT', cost: 12 })

        // Store checksum using SHA256
        fileChecksum: DataTypes.ALGORITHM({ algorithm: 'SHA256' })

        // Use with VIRTUAL for computed hash fields
        passwordHash: DataTypes.VIRTUAL({
        returnType: DataTypes.ALGORITHM({ algorithm: 'BCRYPT' }),
        set(value: string) {
        this.password = hashPassword(value);
        }
        })
    • Op: {
          and: symbol;
          or: symbol;
          not: symbol;
          eq: symbol;
          is: symbol;
          ne: symbol;
          gt: symbol;
          gte: symbol;
          lt: symbol;
          lte: symbol;
          like: symbol;
          notLike: symbol;
          iLike: symbol;
          notILike: symbol;
          startsWith: symbol;
          notStartsWith: symbol;
          endsWith: symbol;
          notEndsWith: symbol;
          substring: symbol;
          notSubstring: symbol;
          col: symbol;
          in: symbol;
          notIn: symbol;
          between: symbol;
          notBetween: symbol;
          isNull: symbol;
          isNotNull: symbol;
          exists: symbol;
          notExists: symbol;
          regexp: symbol;
          notRegexp: symbol;
          iRegexp: symbol;
          notIRegexp: symbol;
          any: symbol;
          all: symbol;
          containsKey: symbol;
          containsKeyPath: symbol;
          containsPath: symbol;
          strictLeft: symbol;
          strictRight: symbol;
          noExtendRight: symbol;
          noExtendLeft: symbol;
          adj: symbol;
          notAdj: symbol;
          arrayContains: symbol;
          arrayContainedBy: symbol;
          arrayOverlaps: symbol;
          arrayAny: symbol;
          arrayAll: symbol;
          contains: symbol;
          containedBy: symbol;
          keyExists: symbol;
          overlap: symbol;
          match: symbol;
          $json: symbol;
          jsonPath: symbol;
          jsonContains: symbol;
          jsonHasKey: symbol;
          jsonbExtract: symbol;
          jsonbExtractText: symbol;
          jsonbExtractPath: symbol;
          jsonbExtractPathText: symbol;
          jsonConcat: symbol;
          jsonDelete: symbol;
          jsonDeletePath: symbol;
          jsonPathExists: symbol;
          jsonPathQuery: symbol;
          jsonTypeOf: symbol;
          json(path: string): symbol;
          key(
              pathOrOptions: string | { path: string; value?: any },
          ): Record<string, any>;
          literal(value: string): LiteralValue;
          cast(value: any, type: string): CastExpression;
          extract(field: any, part: ExtractPart): ExtractExpression;
          conv(
              value: any,
              from: string | null | undefined,
              to: string,
          ): ConvExpression;
          where(
              column: string | { $col: string },
              operator: any,
              value?: any,
          ): Record<string, any> | { $where: { $col: string; [key: string]: any } };
          asc(field: string): OrderExpression;
          desc(field: string): OrderExpression;
          random(): OrderExpression;
          isNotNullPredicate(value: any): boolean;
          matchAgainst(
              columns: string | string[],
              options?: { mode?: "boolean" | "natural" },
          ): { $match: { columns: string[]; mode: "boolean" | "natural" } };
          matchFulltext(
              columns: string | string[],
          ): { $match: { columns: string[]; mode: "natural" } };
          toTsvector(
              column: string,
              config?: string,
          ): { $tsvector: { column: string; config: string } };
          toTsquery(
              query: string,
              config?: string,
          ): { $tsquery: { query: string; config: string } };
          stDistance: symbol;
          stWithin: symbol;
          stContains: symbol;
          stIntersects: symbol;
          stDWithin: symbol;
          stCrosses: symbol;
          stOverlaps: symbol;
          stTouches: symbol;
          stEquals: symbol;
          stIsValid: symbol;
      }
      • Readonlyand: symbol
      • Readonlyor: symbol
      • Readonlynot: symbol
      • Readonlyeq: symbol
      • Readonlyis: symbol
      • Readonlyne: symbol
      • Readonlygt: symbol
      • Readonlygte: symbol
      • Readonlylt: symbol
      • Readonlylte: symbol
      • Readonlylike: symbol
      • ReadonlynotLike: symbol
      • ReadonlyiLike: symbol
      • ReadonlynotILike: symbol
      • ReadonlystartsWith: symbol
      • ReadonlynotStartsWith: symbol
      • ReadonlyendsWith: symbol
      • ReadonlynotEndsWith: symbol
      • Readonlysubstring: symbol
      • ReadonlynotSubstring: symbol
      • Readonlycol: symbol
      • Readonlyin: symbol
      • ReadonlynotIn: symbol
      • Readonlybetween: symbol
      • ReadonlynotBetween: symbol
      • ReadonlyisNull: symbol
      • ReadonlyisNotNull: symbol
      • Readonlyexists: symbol
      • ReadonlynotExists: symbol
      • Readonlyregexp: symbol
      • ReadonlynotRegexp: symbol
      • ReadonlyiRegexp: symbol
      • ReadonlynotIRegexp: symbol
      • Readonlyany: symbol
      • Readonlyall: symbol
      • ReadonlycontainsKey: symbol
      • ReadonlycontainsKeyPath: symbol
      • ReadonlycontainsPath: symbol
      • ReadonlystrictLeft: symbol
      • ReadonlystrictRight: symbol
      • ReadonlynoExtendRight: symbol
      • ReadonlynoExtendLeft: symbol
      • Readonlyadj: symbol
      • ReadonlynotAdj: symbol
      • ReadonlyarrayContains: symbol

        Array contains - checks if an array contains all specified elements PostgreSQL: @>

        // Find products where tags contains both 'electronics' and 'sale'
        Product.findAll({ where: { tags: { [Op.arrayContains]: ['electronics', 'sale'] } } })
        // SQL: WHERE tags @> ARRAY['electronics', 'sale']
      • ReadonlyarrayContainedBy: symbol

        Array contained by - checks if an array is contained by the specified elements PostgreSQL: <@

        // Find products where tags is contained by ['electronics', 'sale', 'new']
        Product.findAll({ where: { tags: { [Op.arrayContainedBy]: ['electronics', 'sale'] } } })
        // SQL: WHERE tags <@ ARRAY['electronics', 'sale']
      • ReadonlyarrayOverlaps: symbol

        Array overlaps - checks if arrays have common elements PostgreSQL: &&

        // Find products where tags overlaps with ['electronics', 'sale']
        Product.findAll({ where: { tags: { [Op.arrayOverlaps]: ['electronics', 'sale'] } } })
        // SQL: WHERE tags && ARRAY['electronics', 'sale']
      • ReadonlyarrayAny: symbol

        Array ANY - checks if any element matches the condition PostgreSQL: ANY

        // Find products where any tag equals 'electronics'
        Product.findAll({ where: { tags: { [Op.arrayAny]: 'electronics' } } })
        // SQL: WHERE 'electronics' = ANY(tags)
      • ReadonlyarrayAll: symbol

        Array ALL - checks if all elements match the condition PostgreSQL: ALL

        // Find products where all prices are greater than 100
        Product.findAll({ where: { prices: { [Op.arrayAll]: { [Op.gt]: 100 } } } })
        // SQL: WHERE 100 > ALL(prices)
      • Readonlycontains: symbol

        JSON contains - checks if JSON document contains the specified value PostgreSQL: @> MySQL: JSON_CONTAINS SQLite: JSON_EXTRACT

        // Find users where preferences contains { theme: 'dark' }
        User.findAll({ where: { preferences: { [Op.contains]: { theme: 'dark' } } } })
      • ReadonlycontainedBy: symbol

        JSON is contained in - checks if the value is contained in the JSON column PostgreSQL: <@

        // Find users where settings is contained in the specified JSON
        User.findAll({ where: { settings: { [Op.containedBy]: { theme: 'dark', lang: 'en' } } } })
      • ReadonlykeyExists: symbol

        JSON key exists - checks if a key (or array index) exists in a JSON object/array

        // Find users where 'role' key exists in data column
        User.findAll({ where: { data: { [Op.keyExists]: 'role' } } })

        // Find users where array index 0 exists
        User.findAll({ where: { tags: { [Op.keyExists]: '0' } } })
      • Readonlyoverlap: symbol

        JSON overlap - checks if JSON arrays overlap (have common elements) PostgreSQL: &&

        // Find users where tags overlaps with ['admin', 'vip']
        User.findAll({ where: { tags: { [Op.overlap]: ['admin', 'vip'] } } })
      • Readonlymatch: symbol

        Column reference - reference another column in a WHERE clause Used for comparing one column to another

        // Find orders where quantity equals available stock
        Order.findAll({ where: { quantity: { [Op.col]: 'available_stock' } } })
      • Readonly$json: symbol
      • ReadonlyjsonPath: symbol

        JSON path explicit operator - explicit JSON path with field and path separated Convenience method combining field and path in one call

        // Query with field and path separated
        User.findAll({
        where: {
        data: { [Op.jsonPath('settings', 'theme')]: 'dark' }
        }
        })
        // SQLite/MySQL: WHERE json_extract(data, '$.settings.theme') = 'dark'
        // PostgreSQL: WHERE data->>'settings'->>'theme' = 'dark'

        // Check if path exists (no value comparison)
        User.findAll({
        where: {
        data: { [Op.jsonPath('settings', 'theme')]: { [Op.ne]: null } }
        }
        })
      • ReadonlyjsonContains: symbol

        JSON contains - checks if a JSON column contains a specific value or object PostgreSQL: @> (contains), MySQL: JSON_CONTAINS, SQLite: json_each

        // Find users where preferences contains { theme: 'dark' }
        User.findAll({ where: { preferences: { [Op.jsonContains]: { theme: 'dark' } } } })
        // SQL: WHERE preferences @> '{"theme":"dark"}' (PostgreSQL)
        // SQL: WHERE JSON_CONTAINS(preferences, '{"theme":"dark"}') (MySQL)
      • ReadonlyjsonHasKey: symbol

        JSON has key - checks if a JSON column has a specific key PostgreSQL: ? (jsonb_exists), MySQL: JSON_CONTAINS_PATH, SQLite: json_each

        // Find users where data column has 'role' key
        User.findAll({ where: { data: { [Op.jsonHasKey]: 'role' } } })
        // SQL: WHERE data ? 'role' (PostgreSQL)
        // SQL: WHERE JSON_CONTAINS_PATH(data, 'one', '$.role') (MySQL)
      • ReadonlyjsonbExtract: symbol

        JSONB extract - extracts a JSON object field (returns JSON) PostgreSQL: -> operator

        // Extract field as JSON: data -> 'key'
        User.findAll({ where: { data: { [Op.jsonbExtract]: { path: 'key' } } } })
        // SQL: WHERE data -> 'key'
      • ReadonlyjsonbExtractText: symbol

        JSONB extract text - extracts a JSON object field as text (returns text) PostgreSQL: ->> operator

        // Extract field as text: data ->> 'key'
        User.findAll({ where: { data: { [Op.jsonbExtractText]: { path: 'key', value: 'someValue' } } } })
        // SQL: WHERE data ->> 'key' = 'someValue'
      • ReadonlyjsonbExtractPath: symbol

        JSONB extract path - extracts JSON by path (returns JSON) PostgreSQL: #> operator

        // Extract nested path as JSON: data #> '{a, b}'
        User.findAll({ where: { data: { [Op.jsonbExtractPath]: { path: ['a', 'b'] } } } })
        // SQL: WHERE data #> '{a, b}'
      • ReadonlyjsonbExtractPathText: symbol

        JSONB extract path text - extracts JSON by path as text (returns text) PostgreSQL: #>> operator

        // Extract nested path as text: data #>> '{a, b}'
        User.findAll({ where: { data: { [Op.jsonbExtractPathText]: { path: ['a', 'b'], value: 'someValue' } } } })
        // SQL: WHERE data #>> '{a, b}' = 'someValue'
      • ReadonlyjsonConcat: symbol

        JSONB concatenation - concatenates two JSONB values PostgreSQL: || operator

        // Concatenate JSONB values: data || '{"key": "value"}'
        User.findAll({ where: { data: { [Op.jsonConcat]: { key: 'value' } } } })
        // SQL: WHERE data || '{"key": "value"}'
      • ReadonlyjsonDelete: symbol

        JSONB delete key - deletes a key from JSONB object PostgreSQL: - operator

        // Delete key from JSONB: data - 'key'
        User.findAll({ where: { data: { [Op.jsonDelete]: 'key' } } })
        // SQL: WHERE data - 'key'
      • ReadonlyjsonDeletePath: symbol

        JSONB delete by path - deletes a key from JSONB by path PostgreSQL: #- operator

        // Delete by path: data #- '{a, b}'
        User.findAll({ where: { data: { [Op.jsonDeletePath]: ['a', 'b'] } } })
        // SQL: WHERE data #- '{a, b}'
      • ReadonlyjsonPathExists: symbol

        JSON path exists - checks if a JSON path exists and returns boolean PostgreSQL: @? operator

        // Check if path exists: data @? '$.key'
        User.findAll({ where: { data: { [Op.jsonPathExists]: '$.key' } } })
        // SQL: WHERE data @? '$.key'
      • ReadonlyjsonPathQuery: symbol

        JSON path query - evaluates JSON path and returns result PostgreSQL: @@ operator

        // Query JSON path: data @@ '$.key'
        User.findAll({ where: { data: { [Op.jsonPathQuery]: '$.key' } } })
        // SQL: WHERE data @@ '$.key'
      • ReadonlyjsonTypeOf: symbol

        JSON type of - returns the type of a JSON value PostgreSQL: json_typeof function

        // Get JSON type: json_typeof(data)
        User.findAll({ where: { data: { [Op.jsonTypeOf]: 'object' } } })
        // SQL: WHERE json_typeof(data) = 'object'
      • json: function
        • Create a JSON column path reference for querying Returns a Symbol that can be used as a computed property key

          Parameters

          • path: string

          Returns symbol

          // Using as computed property key (recommended)
          User.findAll({
          where: {
          settings: { [Op.json('$.theme')]: 'dark' }
          }
          })
          // SQL: WHERE json_extract(settings, '$.theme') = 'dark'

          // Using with path prefix
          User.findAll({
          where: {
          data: { [Op.json('address.city')]: 'NYC' }
          }
          })
          // SQL: WHERE json_extract(data, '$.address.city') = 'NYC'
      • key: function
        • Create a JSON key path query Useful for accessing specific keys in a JSON/JSONB column

          Parameters

          • pathOrOptions: string | { path: string; value?: any }

          Returns Record<string, any>

          // Access JSON key 'name' from data column
          User.findAll({
          where: {
          data: { [Op.key]: 'name' }
          }
          })

          // Compare JSON key to a value
          User.findAll({
          where: {
          data: { [Op.key]: { path: 'name', value: 'John' } }
          }
          })

          // Nested key access
          User.findAll({
          where: {
          data: { [Op.key]: { path: 'profile.settings.theme', value: 'dark' } }
          }
          })
      • literal: function
        • Create a raw SQL literal Useful for embedding raw SQL expressions like NOW(), CURRENT_TIMESTAMP, etc.

          Parameters

          • value: string

          Returns LiteralValue

          // Use with update to set current timestamp
          User.update({ lastLogin: Op.literal('NOW()') }, { where: { ... } })

          // Use in where clause to compare with current time
          User.findAll({
          where: {
          createdAt: { [Op.lt]: Op.literal('NOW()') }
          }
          })

          // Compare column to a literal value
          User.findAll({
          where: {
          updatedAt: { [Op.gt]: Op.literal('createdAt') }
          }
          })

          // Use with Op.where
          User.findAll({ where: Op.where(Op.col('created_at'), '>', Op.literal('NOW()')) })
      • cast: function
        • Create a CAST expression for type casting SQL: CAST(value AS type)

          Parameters

          • value: any
          • type: string

          Returns CastExpression

          // CAST('2023-01-01' AS DATE)
          User.findAll({
          attributes: [[Op.cast('2023-01-01', 'DATE'), 'dateOnly']]
          })

          // CAST(column AS INTEGER)
          User.findAll({
          attributes: [[Op.cast(col('createdAt'), 'INTEGER'), 'dateInt']]
          })

          // CAST to DECIMAL
          User.findAll({
          attributes: [[Op.cast(col('price'), 'DECIMAL(10,2)'), 'priceDecimal']]
          })
      • extract: function
        • Create an EXTRACT expression for extracting date parts SQL: EXTRACT(part FROM field)

          Parameters

          Returns ExtractExpression

          // EXTRACT(YEAR FROM createdAt)
          User.findAll({
          attributes: [[Op.extract('createdAt', 'year'), 'year']]
          })

          // EXTRACT(MONTH FROM order_date)
          User.findAll({
          attributes: [[Op.extract('orderDate', 'month'), 'month']]
          })

          // EXTRACT(HOUR FROM timestamp)
          User.findAll({
          attributes: [[Op.extract('createdAt', 'hour'), 'hour']]
          })
      • conv: function
        • Create a CONVERT expression for type conversion SQL: CONVERT(value, type) for MySQL, CAST for other dialects

          Parameters

          • value: any
          • from: string | null | undefined
          • to: string

          Returns ConvExpression

          // CONVERT(value, type)
          User.findAll({
          attributes: [[Op.conv(col('value'), null, 'CHAR'), 'strValue']]
          })

          // MySQL charset conversion
          User.findAll({
          attributes: [[Op.conv(col('name'), null, 'utf8mb4'), 'utf8Name']]
          })
      • where: function
        • Create a where clause with a column reference Supports both simple equality (2 args) and explicit operator (3 args)

          Parameters

          • column: string | { $col: string }
          • operator: any
          • Optionalvalue: any

          Returns Record<string, any> | { $where: { $col: string; [key: string]: any } }

          // Simple equality (2 args) - defaults to =
          Op.where(Op.col('username'), 'john')
          // => { $where: { $col: 'username', $eq: 'john' } }

          // Compare column to a value with explicit operator
          Op.where(Op.col('user.id'), '=', 1)
          // => { $where: { $col: 'user.id', $eq: 1 } }

          // Compare column to another column
          Op.where(Op.col('balance'), '>', Op.col('credit_limit'))
          // => { $where: { $col: 'balance', $gt: { $col: 'credit_limit' } } }

          // Using with Op.eq symbol
          Op.where(Op.col('user.id'), Op.eq, 1)
          // => { $where: { $col: 'user.id', $eq: 1 } }

          // Using with findAll
          User.findAll({ where: Op.where(Op.col('username'), 'john') })
          User.findAll({ where: Op.where('status', 'active') })
      • asc: function
        • Create an ascending order expression SQL: ORDER BY field ASC

          Parameters

          • field: string

          Returns OrderExpression

          // Order by name ascending
          User.findAll({ order: [Op.asc('name')] })
          // SQL: ORDER BY name ASC

          // Multiple order conditions
          User.findAll({ order: [Op.asc('name'), Op.desc('createdAt')] })
      • desc: function
        • Create a descending order expression SQL: ORDER BY field DESC

          Parameters

          • field: string

          Returns OrderExpression

          // Order by createdAt descending (newest first)
          User.findAll({ order: [Op.desc('createdAt')] })
          // SQL: ORDER BY createdAt DESC

          // Combined with asc
          User.findAll({ order: [Op.asc('name'), Op.desc('createdAt')] })
      • random: function
        • Create a random order expression SQL: ORDER BY RANDOM() (SQLite/PostgreSQL) or ORDER BY RAND() (MySQL)

          Returns OrderExpression

          // Random ordering (useful for sampling)
          User.findAll({ order: [Op.random()] })
          // SQLite: ORDER BY RANDOM()
          // MySQL: ORDER BY RAND()
          // PostgreSQL: ORDER BY RANDOM()

          // With limit for random sample
          User.findAll({ order: [Op.random()], limit: 5 })
      • isNotNullPredicate: function
        • Check if a value is not null Returns true if the value is not null or undefined Useful as a predicate for filtering arrays

          Parameters

          • value: any

          Returns boolean

          // Filter out null values from an array
          const values = [1, null, 2, undefined, 3];
          const notNullValues = values.filter(Op.isNotNull);
          // => [1, 2, 3]

          // Using in array filter with objects
          const users = [{ name: 'John', age: null }, { name: 'Jane', age: 25 }];
          const withAge = users.filter(u => Op.isNotNull(u.age));
          // => [{ name: 'Jane', age: 25 }]
      • matchAgainst: function
        • Create a full-text search MATCH AGAINST condition (MySQL) SQL: MATCH(columns) AGAINST(searchTerm [IN NATURAL LANGUAGE MODE | IN BOOLEAN MODE])

          Parameters

          • columns: string | string[]
          • Optionaloptions: { mode?: "boolean" | "natural" }

          Returns { $match: { columns: string[]; mode: "boolean" | "natural" } }

          // Natural language mode search
          Article.findAll({
          where: {
          [Op.matchAgainst(['title', 'body'])]: 'database'
          }
          })
          // SQL: WHERE MATCH(title, body) AGAINST('database' IN NATURAL LANGUAGE MODE)

          // Boolean mode search
          Article.findAll({
          where: {
          [Op.matchAgainst(['title', 'body'], { mode: 'boolean' })]: '+mysql -oracle'
          }
          })
          // SQL: WHERE MATCH(title, body) AGAINST('+mysql -oracle' IN BOOLEAN MODE)
      • matchFulltext: function
        • Create a full-text search condition (alias for matchAgainst with explicit mode) SQL: MATCH(columns) AGAINST(searchTerm IN NATURAL LANGUAGE MODE)

          Parameters

          • columns: string | string[]

          Returns { $match: { columns: string[]; mode: "natural" } }

          Article.findAll({
          where: {
          [Op.matchFulltext(['title', 'body'])]: 'database'
          }
          })
          // SQL: WHERE MATCH(title, body) AGAINST('database' IN NATURAL LANGUAGE MODE)
      • toTsvector: function
        • Create a PostgreSQL tsvector expression SQL: to_tsvector(config, column)

          Parameters

          • column: string
          • config: string = 'english'

          Returns { $tsvector: { column: string; config: string } }

          Article.findAll({
          where: {
          [Op.toTsvector('title')]: { $tsquery: 'database' }
          }
          })
          // SQL: WHERE to_tsvector('english', title) @@ to_tsquery('english', 'database')
      • toTsquery: function
        • Create a PostgreSQL tsquery expression SQL: to_tsquery(config, query)

          Parameters

          • query: string
          • config: string = 'english'

          Returns { $tsquery: { query: string; config: string } }

          Article.findAll({
          where: {
          body: { [Op.toTsquery('database')]: true }
          }
          })
          // SQL: WHERE body @@ to_tsquery('english', 'database')
      • ReadonlystDistance: symbol

        ST_Distance - calculate distance between two geometries MySQL: ST_Distance(geom1, geom2) PostgreSQL: ST_Distance(geom1, geom2) - for geometry, ST_Distance(geog1, geog2) for geography

        // Find locations within 100 meters of a point
        Location.findAll({
        where: {
        location: { [Op.stDWithin]: { from: 'POINT(0 0)', distance: 100, srid: 4326 } }
        }
        })
      • ReadonlystWithin: symbol

        ST_Within - check if geometry A is within geometry B MySQL: ST_Within(geom1, geom2) PostgreSQL: ST_Within(geom1, geom2)

        // Find locations within a polygon
        Location.findAll({
        where: {
        location: { [Op.stWithin]: { geometry: 'POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', srid: 4326 } }
        }
        })
      • ReadonlystContains: symbol

        ST_Contains - check if geometry A contains geometry B MySQL: ST_Contains(geom1, geom2) PostgreSQL: ST_Contains(geom1, geom2)

        // Find areas that contain a point
        Area.findAll({
        where: {
        boundary: { [Op.stContains]: { geometry: 'POINT(5 5)', srid: 4326 } }
        }
        })
      • ReadonlystIntersects: symbol

        ST_Intersects - check if two geometries intersect MySQL: ST_Intersects(geom1, geom2) PostgreSQL: ST_Intersects(geom1, geom2)

        // Find locations that intersect with a polygon
        Location.findAll({
        where: {
        location: { [Op.stIntersects]: { geometry: 'POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', srid: 4326 } }
        }
        })
      • ReadonlystDWithin: symbol

        ST_DWithin - check if geometries are within a given distance PostgreSQL: ST_DWithin (for both geometry and geography) MySQL 8.0+: ST_Distance_Sphere or ST_DWithin (with care)

        // Find locations within 1km of a point
        Location.findAll({
        where: {
        location: { [Op.stDWithin]: { from: 'POINT(-122.4194 37.7749)', distance: 1000, srid: 4326 } }
        }
        })
      • ReadonlystCrosses: symbol

        ST_Crosses - check if two geometries cross MySQL: ST_Crosses(geom1, geom2) PostgreSQL: ST_Crosses(geom1, geom2)

      • ReadonlystOverlaps: symbol

        ST_Overlaps - check if two geometries overlap MySQL: ST_Overlaps(geom1, geom2) PostgreSQL: ST_Overlaps(geom1, geom2)

      • ReadonlystTouches: symbol

        ST_Touches - check if two geometries touch MySQL: ST_Touches(geom1, geom2) PostgreSQL: ST_Touches(geom1, geom2)

      • ReadonlystEquals: symbol

        ST_Equals - check if two geometries are equal MySQL: ST_Equals(geom1, geom2) PostgreSQL: ST_Equals(geom1, geom2)

      • ReadonlystIsValid: symbol

        ST_IsValid - check if a geometry is valid MySQL: ST_IsValid(geom) PostgreSQL: ST_IsValid(geom)

    • Transaction: typeof Transaction