Toshihiko
    正在准备搜索索引...

    接口 Model<Name, Schema, AdapterInstance>

    以下方法返回的表级 API:Toshihiko.define。

    Model 会编译传入的 schema、创建 Query 构造器、构造 Yukari 数据行,并公开能够感知 schema 的元数据。每个查询入口都会创建一个新的 Query 实例。

    interface Model<
        Name extends string,
        Schema extends SchemaDefinition,
        AdapterInstance extends AdapterLike = Adapter,
    > {
        ai: Field<Schema[number]> | null;
        autoIncrementField: Field<Schema[number]> | null;
        cache: Cache | null;
        columnToName: Readonly<Record<string, FieldName<RowFromSchema<Schema>>>>;
        fieldColumnsMap: Readonly<Record<string, Field<Schema[number]>>>;
        fieldNamesMap: FieldNamesMap<Schema>;
        name: Name;
        nameToColumn: NameToColumnMap<Schema>;
        options: ModelOptions;
        originalSchema: Schema;
        parent: Toshihiko<AdapterInstance>;
        primaryKeys: readonly Field<Schema[number]>[];
        schema: CompiledSchema<Schema>;
        get toshihiko(): Toshihiko<AdapterInstance>;
        beginTransaction(
            ...support: AdapterBeginTransactionArguments<AdapterInstance>,
        ): Promise<AdapterTransactionConnection<AdapterInstance>>;
        build<const Input extends Partial<RowFromSchema<Schema>>>(
            fields: NoUnknownBuildFields<Schema, Input>,
        ): BuiltYukari<Name, Schema, Input, AdapterInstance>;
        commit(
            ...connection: AdapterCommitArguments<AdapterInstance>,
        ): Promise<AdapterCommitResult<AdapterInstance>>;
        conn(
            connection: AdapterConnection<AdapterInstance> | null,
        ): Query<Name, Schema, AdapterInstance>;
        convertColumnToName(
            column: string,
        ): FieldName<RowFromSchema<Schema>> | undefined;
        convertColumnToName(
            columns: readonly string[],
        ): readonly (FieldName<RowFromSchema<Schema>> | undefined)[];
        convertColumnToName(object: DataRow): DataRow;
        count(): Promise<number>;
        delete(): Promise<AdapterDeleteByQueryResult<AdapterInstance>>;
        execute(
            ...arguments_: AdapterQueryExecuteArguments<AdapterInstance>,
        ): Promise<AdapterExecuteResult<AdapterInstance>>;
        field(
            fields: string | readonly FieldName<RowFromSchema<Schema>>[],
        ): Query<Name, Schema, AdapterInstance>;
        fields(
            fields: string | readonly FieldName<RowFromSchema<Schema>>[],
        ): Query<Name, Schema, AdapterInstance>;
        find(): Promise<readonly QueriedYukari<Name, Schema, AdapterInstance>[]>;
        find(
            options: QueryFindManyOptions,
        ): Promise<readonly QueriedYukari<Name, Schema, AdapterInstance>[]>;
        find(
            options: QueryFindOneOptions,
        ): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        find(
            toJSON: false,
            options?: QueryFindManyOptions,
        ): Promise<readonly QueriedYukari<Name, Schema, AdapterInstance>[]>;
        find(
            toJSON: false,
            options: QueryFindOneOptions,
        ): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        find(
            toJSON: true,
            options?: QueryFindManyOptions,
        ): Promise<readonly Partial<JsonRowFromSchema<Schema>>[]>;
        find(
            toJSON: true,
            options: QueryFindOneOptions,
        ): Promise<Partial<JsonRowFromSchema<Schema>> | null>;
        find(
            options: QueryFindManyOptions,
            toJSON: true,
        ): Promise<readonly Partial<JsonRowFromSchema<Schema>>[]>;
        find(
            options: QueryFindOneOptions,
            toJSON: false,
        ): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        find(
            options: QueryFindOneOptions,
            toJSON: true,
        ): Promise<Partial<JsonRowFromSchema<Schema>> | null>;
        findById(
            id: FindByIdInput<Schema>,
        ): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        findById(
            id: FindByIdInput<Schema>,
            toJSON: false,
        ): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        findById(
            id: FindByIdInput<Schema>,
            toJSON: true,
        ): Promise<Partial<JsonRowFromSchema<Schema>> | null>;
        findOne(): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        findOne(
            toJSON: false,
        ): Promise<QueriedYukari<Name, Schema, AdapterInstance> | null>;
        findOne(toJSON: true): Promise<Partial<JsonRowFromSchema<Schema>> | null>;
        getPrimaryKeysColumn(): string | readonly string[];
        getPrimaryKeysName(): string | readonly string[];
        index(indexName: string): Query<Name, Schema, AdapterInstance>;
        limit(
            limit: string | number | readonly (string | number)[],
        ): Query<Name, Schema, AdapterInstance>;
        limit(
            offset: string | number,
            count: string | number,
        ): Query<Name, Schema, AdapterInstance>;
        order(
            order: QueryOrder<RowFromSchema<Schema>>,
        ): Query<Name, Schema, AdapterInstance>;
        orderBy(
            order: QueryOrder<RowFromSchema<Schema>>,
        ): Query<Name, Schema, AdapterInstance>;
        rollback(
            ...connection: AdapterRollbackArguments<AdapterInstance>,
        ): Promise<AdapterRollbackResult<AdapterInstance>>;
        update(
            data: Partial<RowFromSchema<Schema>>,
            ...support: AdapterUpdateByQueryCallArguments<AdapterInstance>,
        ): Promise<AdapterUpdateByQueryResult<AdapterInstance>>;
        where(
            condition: QueryWhere<RowFromSchema<Schema>>,
        ): Query<Name, Schema, AdapterInstance>;
    }

    类型参数

    层级

    • EventEmitter2
      • Model
    索引
    ai: Field<Schema[number]> | null

    兼容性别名:autoIncrementField。

    autoIncrementField: Field<Schema[number]> | null

    带有以下标记的编译后字段:autoIncrement: true(如果存在)。

    cache: Cache | null

    由 Model 选项指定或从上级 Toshihiko 继承的 Cache。

    columnToName: Readonly<Record<string, FieldName<RowFromSchema<Schema>>>>

    存储列名到逻辑字段名的映射。

    fieldColumnsMap: Readonly<Record<string, Field<Schema[number]>>>

    存储列名到编译后 Field 的映射。

    fieldNamesMap: FieldNamesMap<Schema>

    逻辑字段名到编译后 Field 的映射。

    name: Name

    传入以下方法的表名或集合名:Toshihiko.define。

    nameToColumn: NameToColumnMap<Schema>

    逻辑字段名到存储列名的映射。

    options: ModelOptions

    传入以下方法的 Model 选项:Toshihiko.define。

    originalSchema: Schema

    传入以下方法的原始 schema 数组:Toshihiko.define。

    拥有此 Model 的 Toshihiko 实例。

    primaryKeys: readonly Field<Schema[number]>[]

    带有以下标记的所有编译后字段:primaryKey: true。

    从以下数据编译得到的运行时 Field 对象:originalSchema。

    • 将存储列名转换为 schema 中的逻辑字段名。

      未知列会返回 undefined;字符串或数组输入会得到该值,对象输入则会省略相应属性。

      参数

      • column: string

        一个存储列名。其他重载也接受列名数组,或以列名为键的数据行。

      返回 FieldName<RowFromSchema<Schema>> | undefined

      对应的逻辑名称或转换后的结构。

    • column - 一个存储列名。其他重载也接受列名数组,或以列名为键的数据行。

      参数

      • columns: readonly string[]

      返回 readonly (FieldName<RowFromSchema<Schema>> | undefined)[]

      对应的逻辑名称或转换后的结构。

    • column - 一个存储列名。其他重载也接受列名数组,或以列名为键的数据行。

      参数

      返回 DataRow

      对应的逻辑名称或转换后的结构。

    • 通过一个新的 Query 统计所有数据行。

      返回 Promise<number>

    • 返回主键对应的存储列名。

      返回 string | readonly string[]

      单一主键返回一个字符串,复合主键返回数组;Model 没有主键时返回空数组。

    • 返回逻辑主键名。

      返回 string | readonly string[]

      单一主键返回一个字符串,复合主键返回数组;Model 没有主键时返回空数组。