ガイド リファレンス ソース
public class | ソース

モデル

モデルはデータベース内のテーブルを表します。このクラスのインスタンスはデータベースの行を表します。

モデルインスタンスは、インスタンスが表す実際の値を格納するdataValuesプロパティの概念で動作します。デフォルトでは、dataValuesの値はインスタンスから直接アクセスすることもできます。つまり、

instance.field
// is the same as
instance.get('field')
// is the same as
instance.getDataValue('field')

ただし、fieldに対してゲッターやセッターが定義されている場合は、dataValuesから値を返す代わりに、それらが呼び出されます。プロパティに直接アクセスしたり、getを使用したりする方法が通常の使用には推奨されます。getDataValueはカスタムゲッターでのみ使用する必要があります。

参照

  • Sequelize#define ゲッターとセッターの詳細については、こちらを参照してください

静的メソッドの概要

静的パブリックメソッド
public static

addScope(name: string, scope: object | Function, options: object)

モデルに新しいスコープを追加します。

public static

async aggregate(attribute: string, aggregateFunction: string, options: object): Promise<DataTypes|object>

指定されたフィールドに対して集計メソッドを実行します

public static

belongsTo(target: Model, options: object): BelongsTo

この(ソース)と提供されたターゲットの間に関連付けを作成します。

public static

belongsToMany(target: Model, options: object): BelongsToMany

結合テーブルとの N:M 関連付けを作成します。

public static

build(values: object | Array, options: object): Model | Array<Model>

新しいモデルインスタンスを構築します。

public static

async bulkCreate(records: Array, options: object): Promise<Array<Model>>

複数のインスタンスを一括で作成および挿入します。

public static

async count(options: object): Promise<number>

指定された where 句に一致するレコード数をカウントします。

public static

async create(values: object, options: object): Promise<Model>

新しいモデルインスタンスを構築し、save を呼び出します。

public static

async decrement(fields: string | Array | object, options: object): Promise<Model[], ?number>

1つ以上の列の値をデクリメントします。

4.36.0 以降
public static

async describe(schema: string, options: object): Promise

テーブルに対して describe クエリを実行します。

public static

async destroy(options: object): Promise<number>

複数のインスタンスを削除するか、paranoid が有効になっている場合は、それらの deletedAt タイムスタンプを現在の時刻に設定します。

public static

async drop(options: object): Promise

このモデルが表すテーブルを削除します

public static

async findAll(options: object): Promise<Array<Model>>

複数のインスタンスを検索します。

public static

async findAndCountAll(options: object): Promise<{count: number|number[], rows: Model[]}>

指定されたオフセット/制限内でクエリに一致するすべての行を検索し、クエリに一致する行の合計数を取得します。

public static

async findByPk(param: number | bigint | string | Buffer, options: object): Promise<Model>

主キーで単一のインスタンスを検索します。

public static

トランザクション下では動作しない可能性のある、よりパフォーマンスの高い findOrCreate (postgres で動作します) は、find 呼び出しを実行します。空の場合は作成を試み、一意の制約の場合は再度検索を試みます。

public static

async findOne(options: object): Promise<Model|null>

単一のインスタンスを検索します。

public static

async findOrBuild(options: object): Promise<Model, boolean>

クエリに一致する行を検索するか、見つからない場合は行を構築します(ただし保存しません)。プロミスの成功結果は(インスタンス、構築済み)になります

public static

async findOrCreate(options: object): Promise<Model, boolean>

クエリに一致する行を検索するか、見つからない場合は行を構築して保存します。プロミスの成功結果は(インスタンス、作成済み)になります

public static

モデルの属性を返します。

public static

スキーマを考慮して、モデルのテーブル名を取得します。

public static

hasMany(target: Model, options: object): HasMany

この(ソース)と提供されたターゲットの間に 1:m の関連付けを作成します。

public static

hasOne(target: Model, options: object): HasOne

この(ソース)と提供されたターゲットの間に関連付けを作成します。

public static

async increment(fields: string | Array | object, options: object): Promise<Model[], ?number>

1つ以上のカラムの値をインクリメントします。

public static

init(attributes: object, options: object): Model

DB内のテーブルを表すモデルを、属性とオプションで初期化します。

public static

async max(field: string, options: object): Promise<*>

フィールドの最大値を検索します。

public static

async min(field: string, options: object): Promise<*>

フィールドの最小値を検索します。

public static

removeAttribute(attribute: string)

モデル定義から属性を削除します。

public static

async restore(options: object): Promise

paranoid が有効な場合、複数のインスタンスを復元します。

public static

schema(schema: string, options: object): Model

このモデルにスキーマを適用します。

public static

scope(option: Array | object | string): Model

define で作成されたスコープをモデルに適用します。

public static

async sum(field: string, options: object): Promise<number>

フィールドの合計を検索します。

public static

async sync(options: object): Promise<Model>

このモデルをDBに同期します。つまり、テーブルを作成します。

public static

async truncate(options: object): Promise

モデルのすべてのインスタンスを切り捨てます。

public static

スコープなしのモデルを取得します。

public static

async update(values: object, options: object): Promise<Array<number, number>>

whereオプションに一致する複数のインスタンスを更新します。

public static

async upsert(values: object, options: object): Promise<Array<Model, boolean|null>>

単一の行を挿入または更新します。

コンストラクタの概要

パブリックコンストラクタ
public

constructor(values: object, options: object)

新しいモデルインスタンスを構築します。

メンバの概要

パブリックメンバ
public

このインスタンスがまだデータベースに永続化されていない場合にtrueを返します。

public get

Sequelizeインスタンスへの参照

メソッドの概要

パブリックメソッド
public

changed(key: string, value: any): boolean | Array

changedが文字列で呼び出されると、dataValues内のそのキーの値が_previousDataValuesの値と異なるかどうかを示すブール値を返します。

public

async decrement(fields: string | Array | object, options: object): Promise

1つ以上の列の値をデクリメントします。

public

async destroy(options: object): Promise

このインスタンスに対応する行を削除します。

public

equals(other: Model): boolean

このインスタンスとotherインスタンスが同じ行を参照しているかどうかを確認します。

public

equalsを呼び出して、これがothersのいずれかに等しいかどうかを確認します。

public

get(key: string, options: object): object | any

キーが指定されていない場合は、仮想ゲッターも呼び出して、インスタンスのすべての値を返します。

public

getDataValue(key: string): any

基になるデータ値の値を取得します。

public

async increment(fields: string | Array | object, options: object): Promise<Model>

1つ以上のカラムの値をインクリメントします。

4.0.0以降
public

インスタンスが「ソフトデリート」されているかどうかを判断するヘルパーメソッド。

public

previous(key: string): any | Array<any>

_previousDataValuesからキーの前の値を返します。

public

async reload(options: object): Promise<Model>

現在のインスタンスをその場でリフレッシュします。つまり、

public

async restore(options: object): Promise

このインスタンスに対応する行を復元します。

public

async save(options: object): Promise<Model>

このインスタンスを検証し、検証に合格した場合、データベースに永続化します。

public

set(key: string | object, value: any, options: object): Model

set はインスタンスの値の更新に使用されます (つまり、インスタンスの Sequelize 表現です。save を実際に呼び出すまでは何も永続化されないことに注意してください)。

public

setDataValue(key: string, value: any)

基になるデータ値を更新します

public

インスタンスを JSON 表現に変換します。

public

async update(values: object, options: object): Promise<Model>

これは set を呼び出してから save を呼び出すのと同じですが、渡された正確な値のみを保存するため、よりアトミックで安全です。

public

async validate(options: object): Promise

モデル定義で設定された検証ルールに従って、このインスタンスの属性を検証します。

public

where(checkVersion: boolean): object

このインスタンスのクエリを表すオブジェクトを取得します。options.where とともに使用します。

静的パブリックメソッド

public static addScope(name: string, scope: object | Function, options: object) ソース

モデルに新しいスコープを追加します。これは特に、含めるモデルがこのモデルが定義された時点で使用できない場合に、include を持つスコープを追加するのに役立ちます。

デフォルトでは、同じ名前のスコープが既に存在する場合はエラーがスローされます。このエラーを抑制するには、オプション オブジェクトで override: true を渡します。

パラメーター

名前属性説明
name string

スコープの名前。デフォルト スコープをオーバーライドするには defaultScope を使用します。

scope object | Function

スコープまたはオプション

options object
  • オプション

スコープ オプション

options.override boolean
  • オプション
  • デフォルト: false

既に定義されている場合は古いスコープを上書きします

public static async aggregate(attribute: string, aggregateFunction: string, options: object): Promise<DataTypes|object> ソース

指定されたフィールドに対して集計メソッドを実行します

パラメーター

名前属性説明
attribute string

集計する属性。フィールド名または * を指定できます。

aggregateFunction string

集計に使用する関数 (例: sum、max など)。

options object
  • オプション

クエリ オプション。完全なオプションについては、sequelize.query を参照してください。

options.where object
  • オプション

検索属性のハッシュ。

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.benchmark boolean
  • オプション
  • デフォルト: false

クエリ実行時間をミリ秒単位でロギング関数 (options.logging) の 2 番目の引数として渡します。

options.dataType DataTypes | string
  • オプション

結果の型。field がこのモデルのフィールドの場合、デフォルトはそのフィールドの型になります。それ以外の場合は、float がデフォルトになります。

options.distinct boolean
  • オプション

集計対象のフィールドに DISTINCT を適用します

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.plain boolean
  • オプション

true の場合、aggregateFunction の最初の戻り値は dataType にキャストされて返されます。追加の属性が group 句とともに指定されている場合は、返されたすべての行のすべての値を返すために plainfalse に設定します。デフォルトは true です

戻り値

Promise<DataTypes|object>

options.plain が false でない限り、集計結果は options.dataType にキャストされて返されます。false の場合は、完全なデータ結果が返されます。

public static belongsTo(target: Model, options: object): BelongsTo ソース

これ (ソース) と提供されたターゲットとの間にアソシエーションを作成します。外部キーはソースに追加されます。

パラメーター

名前属性説明
target モデル

ターゲット モデル

options object
  • オプション

belongsTo アソシエーション オプション

options.hooks boolean
  • オプション
  • デフォルト: false

カスケードによって関連付けられたモデルが削除されたときに、before-/afterDestroy フックを実行する場合は true に設定します。たとえば、User.hasOne(Profile, {onDelete: 'cascade', hooks:true}) の場合、ユーザーが削除されると、プロファイルの before-/afterDestroy フックが呼び出されます。それ以外の場合、プロファイルはフックを呼び出すことなく削除されます

options.as string
  • オプション

このモデルのエイリアス (単数形)。sequelize.define に渡される name オプションも参照してください。同じテーブル間に複数のアソシエーションを作成する場合は、それらを区別できるようにエイリアスを指定する必要があります。アソシエーションを作成するときにエイリアスを指定する場合は、eager loading 時および関連モデルを取得するときに同じエイリアスを指定する必要があります。デフォルトは、ターゲットの単数化された名前です

options.foreignKey string | object
  • オプション

ソース テーブルの外部キー属性の名前、または外部列の型定義を表すオブジェクト (構文については Sequelize.define を参照してください)。オブジェクトを使用する場合、列の名前を設定するために name プロパティを追加できます。デフォルトは、ターゲットの名前 + ターゲットの主キーです

options.targetKey string
  • オプション

ターゲット テーブルのアソシエーションのキーとして使用する属性の名前。デフォルトはターゲット テーブルの主キーです

options.onDelete string
  • オプション
  • デフォルト: 'SET NULL|NO ACTION'

foreignKey が null を許可する場合は SET NULL、それ以外の場合は NO ACTION

options.onUpdate string
  • オプション
  • デフォルト: 'CASCADE'

'ON UPDATE' を設定します

options.constraints boolean
  • オプション
  • デフォルト: true

外部キーで更新時および削除時の制約を有効にする必要があります。

戻り値

BelongsTo

Profile.belongsTo(User) // This will add userId to the profile table

public static belongsToMany(target: Model, options: object): BelongsToMany ソース

結合テーブルを使用して N:M アソシエーションを作成します。through の定義が必要です。

パラメーター

名前属性説明
target モデル

ターゲット モデル

options object

belongsToMany アソシエーション オプション

options.hooks boolean
  • オプション
  • デフォルト: false

カスケードによって関連付けられたモデルが削除されたときに、before-/afterDestroy フックを実行する場合は true に設定します。たとえば、User.hasOne(Profile, {onDelete: 'cascade', hooks:true}) の場合、ユーザーが削除されると、プロファイルの before-/afterDestroy フックが呼び出されます。それ以外の場合、プロファイルはフックを呼び出すことなく削除されます

options.through Model | string | object

N:M アソシエーションでソースとターゲットを結合するために使用されるテーブルの名前。自分でジャンクション テーブルを定義して追加の属性を追加する場合は、sequelize モデルも指定できます。

options.through.model モデル
  • オプション

N:M アソシエーションの両側を結合するために使用されるモデル。

options.through.scope object
  • オプション

through モデルでのアソシエーションの作成と検索のデフォルトに使用されるキー/値セット。(through モデルに属性を追加することを忘れないでください)

options.through.unique boolean
  • オプション
  • デフォルト: true

true の場合、使用される外部キーから一意のキーが生成されます (スコープを使用するときにこれをオフにして特定のユニーク キーを作成することをお勧めします)

options.through.paranoid boolean
  • オプション
  • デフォルト: false

true の場合、生成された結合テーブルはパラノイドになります

options.as string | object
  • オプション

このアソシエーションのエイリアス。文字列を指定する場合は、複数形である必要があります。また、node.inflection を使用して単数形に変換されます。単数形バージョンを自分で制御する場合は、plural キーと singular キーを持つオブジェクトを指定します。sequelize.define に渡される name オプションも参照してください。同じテーブル間に複数のアソシエーションを作成する場合は、それらを区別できるようにエイリアスを指定する必要があります。アソシエーションを作成するときにエイリアスを指定する場合は、eager loading 時および関連モデルを取得するときに同じエイリアスを指定する必要があります。デフォルトは、ターゲットの複数形化された名前です

options.foreignKey string | object
  • オプション

結合テーブルの外部キーの名前(ソースモデルを表す)または、外部キー列の型定義を表すオブジェクト(構文についてはSequelize.defineを参照)。オブジェクトを使用する場合、列の名前を設定するためにnameプロパティを追加できます。デフォルトは、ソースの名前 + ソースの主キーです。

options.otherKey string | object
  • オプション

結合テーブルの外部キーの名前(ターゲットモデルを表す)または、他の列の型定義を表すオブジェクト(構文についてはSequelize.defineを参照)。オブジェクトを使用する場合、列の名前を設定するためにnameプロパティを追加できます。デフォルトは、ターゲットの名前 + ターゲットの主キーです。

options.scope object
  • オプション

ターゲットでアソシエーションの作成および検索のデフォルトに使用されるキー/値のセット。(N:Mではsqliteはサポートされていません)

options.timestamps boolean
  • オプション
  • デフォルト: sequelize.options.timestamps

結合モデルにタイムスタンプを持たせるかどうか

options.onDelete string
  • オプション
  • デフォルト: 'SET NULL|CASCADE'

これがn:mの場合カスケード、1:mの場合はNULLを設定

options.onUpdate string
  • オプション
  • デフォルト: 'CASCADE'

ON UPDATEを設定

options.constraints boolean
  • オプション
  • デフォルト: true

外部キーで更新時および削除時の制約を有効にする必要があります。

戻り値

BelongsToMany

// Automagically generated join model
User.belongsToMany(Project, { through: 'UserProjects' })
Project.belongsToMany(User, { through: 'UserProjects' })

// Join model with additional attributes
const UserProjects = sequelize.define('UserProjects', {
  started: Sequelize.BOOLEAN
})
User.belongsToMany(Project, { through: UserProjects })
Project.belongsToMany(User, { through: UserProjects })

public static build(values: object | Array, options: object): Model | Array<Model> source

新しいモデルインスタンスを構築します。

パラメーター

名前属性説明
values object | Array

キーと値のペアのオブジェクトまたはそのような配列。配列の場合、関数はインスタンスの配列を返します。

options object
  • オプション

インスタンスの作成オプション

options.raw boolean
  • オプション
  • デフォルト: false

trueに設定すると、値はフィールドと仮想セッターを無視します。

options.isNewRecord boolean
  • オプション
  • デフォルト: true

これは新しいレコードですか?

options.include Array
  • オプション

includeオプションの配列 - プリフェッチ/インクルードされたモデルインスタンスを構築するために使用されます。setを参照

戻り値

Model | Array<Model>

public static async bulkCreate(records: Array, options: object): Promise<Array<Model>> source

複数のインスタンスを一括で作成および挿入します。

成功ハンドラにはインスタンスの配列が渡されますが、これらはDB内の行の状態を完全に表していない可能性があることに注意してください。これは、MySQLとSQLiteが、複数のレコードにマッピングできる方法で、自動生成されたIDやその他のデフォルト値を自動的に取得することを容易にしていないためです。新しく作成された値のインスタンスを取得するには、再度クエリする必要があります。

バリデーションが失敗した場合、promiseは配列のようなAggregateErrorで拒否されます。

パラメーター

名前属性説明
records Array

インスタンスを作成するためのオブジェクト(キー/値ペア)のリスト

options object
  • オプション

一括作成オプション

options.fields Array
  • オプション

挿入するフィールド(デフォルトはすべてのフィールド)

options.validate boolean
  • オプション
  • デフォルト: false

各行が挿入前に検証される必要があるかどうか。1つの行が検証に失敗した場合、挿入全体が失敗します。

options.hooks boolean
  • オプション
  • デフォルト: true

一括作成フックの前/後に実行しますか?

options.individualHooks boolean
  • オプション
  • デフォルト: false

個々のインスタンスに対して作成フックの前/後に実行しますか? options.hooksがtrueの場合、BulkCreateフックは引き続き実行されます。

options.ignoreDuplicates boolean
  • オプション
  • デフォルト: false

主キーの重複値を無視しますか?(MSSQLまたはPostgres <9.5ではサポートされていません)

options.updateOnDuplicate Array
  • オプション

行キーが既に存在する場合に更新するフィールド(重複キーの更新時)?(MySQL、MariaDB、SQLite >= 3.24.0、およびPostgres >= 9.5でのみサポートされています)。

options.conflictAttributes Array
  • オプション

クエリのON CONFLICT部分の競合フィールドのオプションのオーバーライド。Postgres >= 9.5およびSQLite >= 3.24.0でのみサポートされています。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.benchmark boolean
  • オプション
  • デフォルト: false

クエリ実行時間をミリ秒単位でロギング関数 (options.logging) の 2 番目の引数として渡します。

options.returning boolean | Array
  • オプション
  • デフォルト: false

trueの場合、定義されたすべての値を取得するためにRETURNING <モデル列>を追加します。列名の配列の場合、特定の列を取得するためにRETURNING <列>を追加します(Postgresのみ)。

options.searchPath string
  • オプション
  • デフォルト: DEFAULT

スキーマsearch_pathを指定するためのオプションのパラメータ(Postgresのみ)

戻り値

Promise<Array<Model>>

public static async count(options: object): Promise<number> source

指定された where 句に一致するレコード数をカウントします。

includeオプションを指定した場合、一致するアソシエーションの数が代わりにカウントされます。

パラメーター

名前属性説明
options object
  • オプション

options

options.where object
  • オプション

検索属性のハッシュ。

options.include object
  • オプション

includeオプション。詳細については、findを参照してください

options.paranoid boolean
  • オプション
  • デフォルト: true

削除されていないレコードのみをカウントするには、trueを設定します。paranoidが有効になっているモデルで使用できます。

options.distinct boolean
  • オプション

主キーまたはoptions.colにCOUNT(DISTINCT(col))を適用します。

options.col string
  • オプション

COUNT()を適用する必要がある列

options.attributes Array
  • オプション

groupと組み合わせて使用されます

options.group Array
  • オプション

複雑なカウントを作成するため。必要に応じて複数の行を返します。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.benchmark boolean
  • オプション
  • デフォルト: false

クエリ実行時間をミリ秒単位でロギング関数 (options.logging) の 2 番目の引数として渡します。

options.searchPath string
  • オプション
  • デフォルト: DEFAULT

スキーマsearch_pathを指定するためのオプションのパラメータ(Postgresのみ)

戻り値

Promise<number>

public static async create(values: object, options: object): Promise<Model> source

新しいモデルインスタンスを構築し、save を呼び出します。

パラメーター

名前属性説明
values object

新しいレコードを作成するためのデータ値のハッシュ

options object
  • オプション

作成およびクエリのオプション

options.raw boolean
  • オプション
  • デフォルト: false

trueに設定すると、値はフィールドと仮想セッターを無視します。

options.isNewRecord boolean
  • オプション
  • デフォルト: true

これは新しいレコードですか?

options.include Array
  • オプション

includeオプションの配列 - プリフェッチ/インクルードされたモデルインスタンスを構築するために使用されます。setを参照

options.fields string[]
  • オプション

データベース列を表す文字列のオプションの配列。フィールドが指定されている場合、それらの列のみが検証および保存されます。

options.silent boolean
  • オプション
  • デフォルト: false

trueの場合、updatedAtタイムスタンプは更新されません。

options.validate boolean
  • オプション
  • デフォルト: true

falseの場合、バリデーションは実行されません。

options.hooks boolean
  • オプション
  • デフォルト: true

作成/更新の前と後に + バリデーションフックを実行します

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.benchmark boolean
  • オプション
  • デフォルト: false

クエリ実行時間をミリ秒単位でロギング関数 (options.logging) の 2 番目の引数として渡します。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.searchPath string
  • オプション
  • デフォルト: DEFAULT

スキーマsearch_pathを指定するためのオプションのパラメータ(Postgresのみ)

options.returning boolean | Array
  • オプション
  • デフォルト: true

定義されたすべての値を取得するためにRETURNING <モデル列>を追加します。列名の配列の場合、特定の列を取得するためにRETURNING <列>を追加します(Postgresのみ)。

戻り値

Promise<Model>

参照

public static async decrement(fields: string | Array | object, options: object): Promise<Model[], ?number> since 4.36.0 source

1つ以上の列の値を減らします。これはデータベースで行われるため、インスタンスに現在保存されている値は使用されません。減算は、sql SET column = column - X WHERE foo = 'bar'クエリを使用して行われます。インスタンスへの減算後の正しい値を取得するには、リロードする必要があります。

パラメーター

名前属性説明
fields string | Array | object

文字列が指定されている場合、その列はオプションで指定されたbyの値だけ減算されます。配列が指定されている場合は、各列で同じことが当てはまります。オブジェクトが指定されている場合は、各列が指定された値だけ減算されます。

options object

減算オプション。増分と同様

戻り値

Promise<Model[], ?number>

影響を受ける行の配列と、options.returningがtrueの場合、常に方言でサポートされている場合は影響を受けるカウントを返します

数値を1減算
Model.decrement('number', { where: { foo: 'bar' });
数値とカウントを2減算
Model.decrement(['number', 'count'], { by: 2, where: { foo: 'bar' } });
答えを42減算し、試行回数を-1減算
// `by` is ignored, since each column has its own value
Model.decrement({ answer: 42, tries: -1}, { by: 2, where: { foo: 'bar' } });

参照

public static async describe(schema: string, options: object): Promise source

テーブルに対して describe クエリを実行します。

パラメーター

名前属性説明
schema string
  • オプション

テーブルを検索するスキーマ名

options object
  • オプション

クエリオプション

戻り値

Promise

属性とその型のハッシュ

public static async destroy(options: object): Promise<number> source

複数のインスタンスを削除するか、paranoid が有効になっている場合は、それらの deletedAt タイムスタンプを現在の時刻に設定します。

パラメーター

名前属性説明
options object

破棄オプション

options.where object
  • オプション

破棄をフィルタリングする

options.hooks boolean
  • オプション
  • デフォルト: true

一括破棄フックの前/後に実行しますか?

options.individualHooks boolean
  • オプション
  • デフォルト: false

trueに設定すると、destroyはwhereパラメーターに一致するすべてのレコードをSELECTし、各行で破棄フックの前/後を実行します。

options.limit number
  • オプション

削除する行数

options.force boolean
  • オプション
  • デフォルト: false

deletedAtを現在のタイムスタンプに設定する代わりに削除します(paranoidが有効な場合にのみ適用可能)。

options.truncate boolean
  • オプション
  • デフォルト: false

trueに設定すると、それをサポートする方言はDELETE FROMの代わりにTRUNCATEを使用します。テーブルが切り捨てられると、whereオプションとlimitオプションは無視されます。

options.cascade boolean
  • オプション
  • デフォルト: false

TRUNCATEと組み合わせてのみ使用されます。指定されたテーブル、またはCASCADEによってグループに追加されたテーブルへの外部キー参照があるすべてのテーブルを切り捨てます。

options.restartIdentity boolean
  • オプション
  • デフォルト: false

TRUNCATEと組み合わせてのみ使用されます。切り捨てられたテーブルの列が所有するシーケンスを自動的に再開します。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.benchmark boolean
  • オプション
  • デフォルト: false

クエリ実行時間をミリ秒単位でロギング関数 (options.logging) の 2 番目の引数として渡します。

戻り値

Promise<number>

破棄された行数

public static async drop(options: object): Promise source

このモデルが表すテーブルを削除します

パラメーター

名前属性説明
options object
  • オプション

drop オプション

options.cascade boolean
  • オプション
  • デフォルト: false

ビューなど、このテーブルに依存するすべてのオブジェクトも削除します。Postgresでのみ動作します。

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.benchmark boolean
  • オプション
  • デフォルト: false

クエリ実行時間をミリ秒単位でロギング関数 (options.logging) の 2 番目の引数として渡します。

戻り値

Promise

public static async findAll(options: object): Promise<Array<Model>> source

複数のインスタンスを検索します。

パラメーター

名前属性説明
options object
  • オプション

検索範囲を記述するオプションのハッシュ

options.where object
  • オプション

検索を記述する属性のハッシュ。上記の例を参照してください。

options.attributes Array<string> | object
  • オプション

選択したい属性のリスト、または `include` および `exclude` キーを持つオブジェクト。属性の名前を変更するには、2つの要素を持つ配列を渡すことができます。最初の要素はDB内の属性の名前(または `Sequelize.literal`、 `Sequelize.fn` などの式)、2番目の要素は返されるインスタンスで属性に付けたい名前です。

options.attributes.include Array<string>
  • オプション

モデルのすべての属性に加えて、いくつかの追加属性を選択します。集計に便利です。例えば、`{ attributes: { include: [[sequelize.fn('COUNT', sequelize.col('id')), 'total']] }`

options.attributes.exclude Array<string>
  • オプション

モデルのすべての属性を選択しますが、いくつかを除外します。セキュリティ上の目的で便利です。例えば、`{ attributes: { exclude: ['password'] } }`

options.paranoid boolean
  • オプション
  • デフォルト: true

trueの場合、削除されていないレコードのみが返されます。falseの場合、削除されたレコードと削除されていないレコードの両方が返されます。モデルで `options.paranoid` が true の場合にのみ適用されます。

options.include Array<object|Model|string>
  • オプション

左結合を使用して、積極的にロードするアソシエーションのリスト。サポートされているのは、`{ include: [ Model1, Model2, ...]} `、`{ include: [{ model: Model1, as: 'Alias' }]} `、または ` { include: ['Alias']} `のいずれかです。アソシエーションが `as` で設定されている場合(例:`X.hasMany(Y, { as: 'Z' }`)、Yを積極的にロードするときは、as属性でZを指定する必要があります。

options.include[].model モデル
  • オプション

積極的にロードしたいモデル

options.include[].as string
  • オプション

積極的にロードしたいモデルがエイリアスされている場合、関係のエイリアス。`hasOne` / `belongsTo` の場合、これは単数形の名前にする必要があります。`hasMany` の場合は複数形の名前にする必要があります。

options.include[].association アソシエーション
  • オプション

積極的にロードしたいアソシエーション。(モデル/asペアを提供する代わりにこれを使用できます)

options.include[].where object
  • オプション

子モデルに適用するWhere句。`required: false` を明示的に設定しない限り、これは積極的なロードを内部結合に変換することに注意してください。

options.include[].or boolean
  • オプション
  • デフォルト: false

ON句とWHERE句をANDではなくORで結合するかどうか。

options.include[].on object
  • オプション

結合のための独自のON条件を提供します。

options.include[].attributes Array<string>
  • オプション

子モデルから選択する属性のリスト

options.include[].required boolean
  • オプション

trueの場合、内部結合に変換されます。つまり、親モデルは一致する子がある場合にのみロードされます。`include.where` が設定されている場合はtrue、それ以外の場合はfalseです。

options.include[].right boolean
  • オプション

trueの場合、ダイアレクトがサポートしている場合は、右結合に変換されます。`include.required` が true の場合は無視されます。

options.include[].separate boolean
  • オプション

trueの場合、関連付けられたインスタンスをフェッチするために別のクエリを実行します。hasManyアソシエーションでのみサポートされます

options.include[].limit number
  • オプション

結合された行を制限します。include.separate = true でのみサポートされます

options.include[].through.as string
  • オプション

結合モデルのエイリアス。デフォルトのモデル名とは異なる名前を付けたい場合に指定します。

options.include[].through.paranoid boolean
  • オプション

trueの場合、削除されていないレコードのみが結合テーブルから返されます。falseの場合、削除されたレコードと削除されていないレコードの両方が返されます。中間モデルがパラノイドの場合にのみ適用されます。

options.include[].through.where object
  • オプション

belongsToMany関係の結合モデルでフィルタリング

options.include[].through.attributes Array
  • オプション

belongsToMany関係の結合モデルから選択する属性のリスト

options.include[].include Array<object|Model|string>
  • オプション

さらにネストされた関連モデルをロードします

options.include[].duplicating boolean
  • オプション

includeを重複としてマークすると、サブクエリの使用が防止されます。

options.order Array | fn | col | literal
  • オプション

順序を指定します。配列を使用すると、ソートする列/関数を複数指定できます。各要素は、2つの要素を持つ配列でさらにラップできます。最初の要素はソートする列/関数、2番目の要素は方向です。例:`order: [['name', 'DESC']]`。このように、列はエスケープされますが、方向はエスケープされません。

options.limit number
  • オプション

結果の制限

options.offset number
  • オプション

結果のオフセット

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.lock string | object
  • オプション

選択した行をロックします。可能なオプションは、transaction.LOCK.UPDATEとtransaction.LOCK.SHAREです。Postgresは、transaction.LOCK.KEY_SHARE、transaction.LOCK.NO_KEY_UPDATE、および結合による特定のモデルロックもサポートしています。

options.skipLocked boolean
  • オプション

ロックされた行をスキップします。Postgresでのみサポートされています。

options.raw boolean
  • オプション

未加工の結果を返します。詳細については、sequelize.queryを参照してください。

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.benchmark boolean
  • オプション
  • デフォルト: false

クエリ実行時間をミリ秒単位でロギング関数 (options.logging) の 2 番目の引数として渡します。

options.having object
  • オプション

Havingオプション

options.searchPath string
  • オプション
  • デフォルト: DEFAULT

スキーマsearch_pathを指定するためのオプションのパラメータ(Postgresのみ)

options.rejectOnEmpty boolean | Error
  • オプション
  • デフォルト: false

レコードが見つからない場合にエラーをスローします

options.dotNotation boolean
  • オプション

ドットを含む同じ属性/列名を持つテーブルを含めることを許可します。

options.nest boolean
  • オプション
  • デフォルト: false

trueの場合、`.`で区切られたプロパティ名を持つオブジェクトをネストされたオブジェクトに変換します。

戻り値

Promise<Array<Model>>

ANDと=を使用した単純な検索
Model.findAll({
  where: {
    attr1: 42,
    attr2: 'cake'
  }
})

# WHERE attr1 = 42 AND attr2 = 'cake'
より大きい、より小さいなどを利用したクエリ
const {gt, lte, ne, in: opIn} = Sequelize.Op;

Model.findAll({
  where: {
    attr1: {
      [gt]: 50
    },
    attr2: {
      [lte]: 45
    },
    attr3: {
      [opIn]: [1,2,3]
    },
    attr4: {
      [ne]: 5
    }
  }
})

# WHERE attr1 > 50 AND attr2 <= 45 AND attr3 IN (1,2,3) AND attr4 != 5
ORを使用したクエリ
const {or, and, gt, lt} = Sequelize.Op;

Model.findAll({
  where: {
    name: 'a project',
    [or]: [
      {id: [1, 2, 3]},
      {
        [and]: [
          {id: {[gt]: 10}},
          {id: {[lt]: 100}}
        ]
      }
    ]
  }
});

# WHERE `Model`.`name` = 'a project' AND (`Model`.`id` IN (1, 2, 3) OR (`Model`.`id` > 10 AND `Model`.`id` < 100));

参照

  • 可能な演算子の演算子 __Alias__: _all_ クエリが成功した場合、Modelインスタンスの配列でpromiseが解決されます。
  • Sequelize#query

public static async findAndCountAll(options: object): Promise<{count: number|number[], rows: Model[]}> source

指定されたオフセット/制限内で、クエリに一致するすべての行を検索し、クエリに一致する行の総数を取得します。これはページングに非常に役立ちます

パラメーター

名前属性説明
options object
  • オプション

findAllオプションを参照してください

戻り値

Promise<{count: number|number[], rows: Model[]}>

const result = await Model.findAndCountAll({
  where: ...,
  limit: 12,
  offset: 12
});

# In the above example, `result.rows` will contain rows 13 through 24, while `result.count` will return the total number of rows that matched your query.

# When you add includes, only those which are required (either because they have a where clause, or because `required` is explicitly set to true on the include) will be added to the count part.

# Suppose you want to find all users who have a profile attached:

User.findAndCountAll({
  include: [
     { model: Profile, required: true}
  ],
  limit: 3
});

# Because the include for `Profile` has `required` set it will result in an inner join, and only the users who have a profile will be counted. If we remove `required` from the include, both users with and without profiles will be counted

参照

  • findおよびクエリオプションの仕様については、Model.findAllを参照してください
  • カウントオプションの仕様については、Model.countを参照してください

public static async findByPk(param: number | bigint | string | Buffer, options: object): Promise<Model> source

主キーで単一のインスタンスを検索します。

パラメーター

名前属性説明
param number | bigint | string | Buffer

目的のインスタンスの主キーの値。

options object
  • オプション

find オプション

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.searchPath string
  • オプション
  • デフォルト: DEFAULT

スキーマsearch_pathを指定するためのオプションのパラメータ(Postgresのみ)

戻り値

Promise<Model>

参照

  • オプションの詳細な説明については、Model.findAllを参照してください。options.whereはサポートされていないことに注意してください。

public static async findCreateFind(options: object): Promise<Model, boolean> source

トランザクション下では動作しない可能性のある、よりパフォーマンスの高い findOrCreate (postgres で動作します) は、find 呼び出しを実行します。空の場合は作成を試み、一意の制約の場合は再度検索を試みます。

パラメーター

名前属性説明
options object

find オプション

options.where object

検索属性のハッシュ。`where`がプレーンオブジェクトの場合、新しいインスタンスを構築するためにデフォルトが追加されます。

options.defaults object
  • オプション

新しいインスタンスを作成する場合に使用するデフォルト値

戻り値

Promise<Model, boolean>

参照

  • findおよびオプションの完全な仕様については、Model.findAllを参照してください

public static async findOne(options: object): Promise<Model|null> ソース

単一のインスタンスを検索します。最初に見つかったインスタンスを返し、見つからなかった場合は null を返します。

パラメーター

名前属性説明
options object
  • オプション

検索範囲を記述するオプションのハッシュ

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.searchPath string
  • オプション
  • デフォルト: DEFAULT

スキーマsearch_pathを指定するためのオプションのパラメータ(Postgresのみ)

戻り値

Promise<Model|null>

参照

  • オプションの説明については、Model.findAll を参照してください。

public static async findOrBuild(options: object): Promise<Model, boolean> ソース

クエリに一致する行を検索するか、見つからない場合は行を構築します(ただし保存しません)。プロミスの成功結果は(インスタンス、構築済み)になります

パラメーター

名前属性説明
options object

find オプション

options.where object

検索属性のハッシュ。`where`がプレーンオブジェクトの場合、新しいインスタンスを構築するためにデフォルトが追加されます。

options.defaults object
  • オプション

新しいインスタンスを構築する場合に使用するデフォルト値。

options.transaction object
  • オプション

クエリを実行するトランザクション

戻り値

Promise<Model, boolean>

public static async findOrCreate(options: object): Promise<Model, boolean> ソース

クエリに一致する行を検索するか、見つからない場合は行を構築して保存します。プロミスの成功結果は(インスタンス、作成済み)になります

options オブジェクトにトランザクションが渡されない場合、find の後、挿入呼び出しの前に、別の接続によって一致する行が作成されるという競合状態を防ぐために、新しいトランザクションが内部的に作成されます。ただし、SQLite では、あるトランザクションが挿入し、別のトランザクションが最初のトランザクションがコミットする前に選択しようとする場合など、このケースを常に処理できるわけではありません。この場合、sequelize.TimeoutError のインスタンスが代わりにスローされます。トランザクションが作成される場合は、代わりにセーブポイントが作成され、一意制約違反は内部的に処理されます。

パラメーター

名前属性説明
options object

find および create のオプション

options.where object

where 検索属性のハッシュ。where がプレーンオブジェクトの場合、新しいインスタンスを構築するためのデフォルトが追加されます。

options.defaults object
  • オプション

新しいインスタンスを作成する場合に使用するデフォルト値

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

戻り値

Promise<Model, boolean>

参照

  • findおよびオプションの完全な仕様については、Model.findAllを参照してください

public static getAttributes(): object | any ソース

モデルの属性を返します。

戻り値

object | any

public static getTableName(): string | object ソース

スキーマを考慮したモデルのテーブル名を取得します。モデルにスキーマがない場合は、名前が文字列として返されます。または、tableNameschema、および delimiter プロパティを持つオブジェクトが返されます。

戻り値

string | object

public static hasMany(target: Model, options: object): HasMany ソース

これ (ソース) と指定されたターゲットの間に 1:多 の関連付けを作成します。外部キーはターゲットに追加されます。

パラメーター

名前属性説明
target モデル

ターゲット モデル

options object
  • オプション

hasMany の関連付けオプション

options.hooks boolean
  • オプション
  • デフォルト: false

カスケードによって関連付けられたモデルが削除されたときに、before-/afterDestroy フックを実行する場合は true に設定します。たとえば、User.hasOne(Profile, {onDelete: 'cascade', hooks:true}) の場合、ユーザーが削除されると、プロファイルの before-/afterDestroy フックが呼び出されます。それ以外の場合、プロファイルはフックを呼び出すことなく削除されます

options.as string | object
  • オプション

このモデルのエイリアス。文字列を指定する場合は、複数形にする必要があり、node.inflection を使用して単数形に変換されます。単数形バージョンを自分で制御する場合は、plural キーと singular キーを持つオブジェクトを指定します。また、sequelize.define に渡される name オプションも参照してください。同じテーブル間で複数の関連付けを作成する場合は、それらを区別できるようにエイリアスを指定する必要があります。関連付けを作成するときにエイリアスを指定した場合は、遅延読み込みや関連モデルを取得するときにも同じエイリアスを指定する必要があります。デフォルトは、ターゲットの複数形名です。

options.foreignKey string | object
  • オプション

ターゲットテーブルの外部キーの名前。または、外部列の型定義を表すオブジェクト (構文については Sequelize.define を参照)。オブジェクトを使用する場合は、name プロパティを追加して列の名前を設定できます。デフォルトは、ソースの名前 + ソースの主キーです。

options.sourceKey string
  • オプション

ソーステーブルで関連付けのキーとして使用するフィールドの名前。デフォルトは、ソーステーブルの主キーです。

options.scope object
  • オプション

ターゲットでアソシエーションの作成および検索のデフォルトに使用されるキー/値のセット。(N:Mではsqliteはサポートされていません)

options.onDelete string
  • オプション
  • デフォルト: 'SET NULL|CASCADE'

foreignKey が NULL を許可する場合は SET NULL、それ以外の場合は CASCADE

options.onUpdate string
  • オプション
  • デフォルト: 'CASCADE'

ON UPDATE を設定します。

options.constraints boolean
  • オプション
  • デフォルト: true

外部キーで更新時および削除時の制約を有効にする必要があります。

戻り値

HasMany

User.hasMany(Profile) // This will add userId to the profile table

public static hasOne(target: Model, options: object): HasOne ソース

これ (ソース) と指定されたターゲットの間に関連付けを作成します。外部キーはターゲットに追加されます。

パラメーター

名前属性説明
target モデル

ターゲット モデル

options object
  • オプション

hasOne の関連付けオプション

options.hooks boolean
  • オプション
  • デフォルト: false

カスケードによって関連付けられたモデルが削除されたときに、before-/afterDestroy フックを実行する場合は true に設定します。たとえば、User.hasOne(Profile, {onDelete: 'cascade', hooks:true}) の場合、ユーザーが削除されると、プロファイルの before-/afterDestroy フックが呼び出されます。それ以外の場合、プロファイルはフックを呼び出すことなく削除されます

options.as string
  • オプション

このモデルのエイリアス (単数形)。sequelize.define に渡される name オプションも参照してください。同じテーブル間に複数のアソシエーションを作成する場合は、それらを区別できるようにエイリアスを指定する必要があります。アソシエーションを作成するときにエイリアスを指定する場合は、eager loading 時および関連モデルを取得するときに同じエイリアスを指定する必要があります。デフォルトは、ターゲットの単数化された名前です

options.foreignKey string | object
  • オプション

ターゲットモデルの外部キー属性の名前。または、外部列の型定義を表すオブジェクト (構文については Sequelize.define を参照)。オブジェクトを使用する場合は、name プロパティを追加して列の名前を設定できます。デフォルトは、ソースの名前 + ソースの主キーです。

options.sourceKey string
  • オプション

ソーステーブルで関連付けのキーとして使用する属性の名前。デフォルトは、ソーステーブルの主キーです。

options.onDelete string
  • オプション
  • デフォルト: 'SET NULL|CASCADE'

foreignKey が NULL を許可する場合は SET NULL、それ以外の場合は CASCADE

options.onUpdate string
  • オプション
  • デフォルト: 'CASCADE'

'ON UPDATE' を設定します

options.constraints boolean
  • オプション
  • デフォルト: true

外部キーで更新時および削除時の制約を有効にする必要があります。

options.uniqueKey string
  • オプション

一意制約のカスタム名。

戻り値

HasOne

User.hasOne(Profile) // This will add userId to the profile table

public static async increment(fields: string | Array | object, options: object): Promise<Model[], ?number> ソース

1 つ以上の列の値を増分します。これはデータベースで行われるため、インスタンスに現在保存されている値は使用されません。増分は、SET column = column + X WHERE foo = 'bar' クエリを使用して行われます。インスタンスへの増分後の正しい値を取得するには、リロードを行う必要があります。

パラメーター

名前属性説明
fields string | Array | object

文字列が指定されている場合、その列はオプションで指定されたbyの値だけ減算されます。配列が指定されている場合は、各列で同じことが当てはまります。オブジェクトが指定されている場合は、各列が指定された値だけ減算されます。

options object

増分オプション

options.where object

条件ハッシュ

options.by number
  • オプション
  • デフォルト: 1

増分する数

options.silent boolean
  • オプション
  • デフォルト: false

trueの場合、updatedAtタイムスタンプは更新されません。

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.searchPath string
  • オプション
  • デフォルト: DEFAULT

スキーマsearch_pathを指定するためのオプションのパラメータ(Postgresのみ)

戻り値

Promise<Model[], ?number>

影響を受ける行の配列と、options.returningがtrueの場合、常に方言でサポートされている場合は影響を受けるカウントを返します

数を 1 ずつ増分します
Model.increment('number', { where: { foo: 'bar' });
数とカウントを 2 ずつ増分します
Model.increment(['number', 'count'], { by: 2, where: { foo: 'bar' } });
答えを 42 ずつ増分し、試行回数を 1 ずつ減分します
// `by` is ignored, as each column has its own value
Model.increment({ answer: 42, tries: -1}, { by: 2, where: { foo: 'bar' } });

参照

public static init(attributes: object, options: object): Model ソース

DB内のテーブルを表すモデルを、属性とオプションで初期化します。

テーブルの列は、最初の引数として指定されたハッシュによって定義されます。ハッシュの各属性は、列を表します。

パラメーター

名前属性説明
属性 object

各属性がテーブルの列であるオブジェクト。各列は、DataType、文字列、または型記述オブジェクトのいずれかであり、以下に説明するプロパティを持ちます。

attributes.column string | DataTypes | object

データベース列の記述

attributes.column.type string | DataTypes

文字列またはデータ型

attributes.column.allowNull boolean
  • オプション
  • デフォルト: true

false の場合、列には NOT NULL 制約があり、インスタンスが保存される前に null ではない検証が実行されます。

attributes.column.defaultValue any
  • オプション
  • デフォルト: null

リテラル デフォルト値、JavaScript 関数、または SQL 関数 (sequelize.fn を参照)

attributes.column.unique string | boolean
  • オプション
  • デフォルト: false

true の場合、列には一意制約が適用されます。文字列が指定された場合、列は複合一意インデックスの一部になります。複数の列に同じ文字列がある場合は、同じ一意インデックスの一部になります。

attributes.column.primaryKey boolean
  • オプション
  • デフォルト: false

true の場合、この属性は主キーとしてマークされます

attributes.column.field string
  • オプション
  • デフォルト: null

設定されている場合、sequelize は属性名をデータベース内の別の名前にマップします

attributes.column.autoIncrement boolean
  • オプション
  • デフォルト: false

true の場合、この列は自動インクリメントに設定されます

attributes.column.autoIncrementIdentity boolean
  • オプション
  • デフォルト: false

true の場合、autoIncrement=true と組み合わせると、Postgres の SERIAL の代わりに GENERATED BY DEFAULT AS IDENTITY を使用します。Postgres 10 以降のみ。

attributes.column.comment string
  • オプション
  • デフォルト: null

この列のコメント

attributes.column.references string | Model
  • オプション
  • デフォルト: null

参照構成を持つオブジェクト

attributes.column.references.model string | Model
  • オプション

この列が別のテーブルを参照する場合は、モデルまたは文字列としてここに指定します

attributes.column.references.key string
  • オプション
  • デフォルト: 'id'

この列が参照する外部テーブルの列

attributes.column.onUpdate string
  • オプション

参照キーが更新された場合に何が起こるべきか。CASCADE、RESTRICT、SET DEFAULT、SET NULL、または NO ACTION のいずれか。

attributes.column.onDelete string
  • オプション

参照キーが削除された場合に何が起こるべきか。CASCADE、RESTRICT、SET DEFAULT、SET NULL、または NO ACTION のいずれか。

attributes.column.get Function
  • オプション

この列のカスタム getter を指定します。基になる値を操作するには、this.getDataValue(String) を使用します。

attributes.column.set Function
  • オプション

この列のカスタム setter を指定します。基になる値を操作するには、this.setDataValue(String, Value) を使用します。

attributes.column.validate object
  • オプション

モデルが保存されるたびにこのカラムに対して実行される検証のオブジェクトです。validator.jsによって提供される検証の名前、validator.jsを拡張して提供される検証関数(詳細はDAOValidatorプロパティを参照)、またはカスタム検証関数のいずれかを使用できます。カスタム検証関数は、フィールドの値とインスタンス自体をthisバインディングとして呼び出され、非同期であることを示すために、2番目のコールバック引数を取ることもできます。バリデーターが同期の場合は、検証に失敗した場合に例外をスローする必要があります。非同期の場合は、エラーテキストとともにコールバックを呼び出す必要があります。

options object

これらのオプションは、Sequelizeコンストラクターに提供されるデフォルトの定義オプションとマージされます。

options.sequelize object

新しいモデルをアタッチするSequelizeインスタンスを定義します。提供されない場合はエラーをスローします。

options.modelName string
  • オプション

モデルの名前を設定します。デフォルトでは、クラス名と同じです。

options.defaultScope object
  • オプション
  • デフォルト: {}

このモデルに使用するデフォルトの検索スコープを定義します。スコープは、find / findAllに渡されるオプションと同じ形式です。

options.scopes object
  • オプション

上記のdefaultScopeと同じ方法で定義された、より多くのスコープ。スコープがどのように定義され、それらを使用して何ができるかについての詳細は、Model.scopeを参照してください。

options.omitNull boolean
  • オプション

null値を永続化しません。つまり、null値を持つすべてのカラムは保存されません。

options.timestamps boolean
  • オプション
  • デフォルト: true

createdAtおよびupdatedAtタイムスタンプをモデルに追加します。

options.paranoid boolean
  • オプション
  • デフォルト: false

これがtrueの場合、destroyを呼び出してもモデルは削除されず、代わりにdeletedAtタイムスタンプが設定されます。動作させるにはtimestamps=trueが必要です。

options.underscored boolean
  • オプション
  • デフォルト: false

すべての属性にアンダースコア付きのフィールドを追加します。これには、ユーザー定義の属性、タイムスタンプ、および外部キーが含まれます。明示的に設定されたfieldオプションを持つ属性には影響しません。

options.freezeTableName boolean
  • オプション
  • デフォルト: false

freezeTableNameがtrueの場合、sequelizeはモデル名を変更してテーブル名を取得しようとしません。それ以外の場合、モデル名は複数形になります。

options.name object
  • オプション

このモデルが他のモデルに関連付けられている場合に使用される、singularpluralの2つの属性を持つオブジェクト。

options.name.singular string
  • オプション
  • デフォルト: Utils.singularize(modelName)

モデルの単数形名

options.name.plural string
  • オプション
  • デフォルト: Utils.pluralize(modelName)

モデルの複数形名

options.indexes 配列<オブジェクト>
  • オプション

インデックス定義

options.indexes[].name string
  • オプション

インデックスの名前。デフォルトは、モデル名 + _ + フィールドを連結したもの。

options.indexes[].type string
  • オプション

インデックスタイプ。mysqlでのみ使用されます。UNIQUEFULLTEXT、およびSPATIALのいずれか。

options.indexes[].using string
  • オプション

インデックスを作成する方法(SQLのUSINGステートメント)。BTREEとHASHはmysqlとpostgresでサポートされており、postgresはさらにGISTとGINをサポートしています。

options.indexes[].operator string
  • オプション

インデックス演算子を指定します。

options.indexes[].unique boolean
  • オプション
  • デフォルト: false

インデックスは一意である必要がありますか?typeをUNIQUEに設定することでもトリガーできます。

options.indexes[].concurrently boolean
  • オプション
  • デフォルト: false

PostgresSQLは、書き込みロックをせずにインデックスを構築します。Postgresのみ。

options.indexes[].fields 配列<文字列|オブジェクト>
  • オプション

インデックスを作成するフィールドの配列。各フィールドは、フィールドの名前を含む文字列、sequelizeオブジェクト(例:sequelize.fn)、または次の属性を持つオブジェクトのいずれかになります:attribute(フィールド名)、length(length文字のプレフィックスインデックスを作成する)、order(カラムをソートする方向)、collate(カラムの照合順序)

options.createdAt string | boolean
  • オプション

文字列が指定された場合はcreatedAt属性の名前を上書きするか、falseの場合は無効にします。タイムスタンプはtrueである必要があります。アンダースコア付きフィールドは、アンダースコア設定で設定されます。

options.updatedAt string | boolean
  • オプション

文字列が指定された場合はupdatedAt属性の名前を上書きするか、falseの場合は無効にします。タイムスタンプはtrueである必要があります。アンダースコア付きフィールドは、アンダースコア設定で設定されます。

options.deletedAt string | boolean
  • オプション

文字列が指定された場合はdeletedAt属性の名前を上書きするか、falseの場合は無効にします。タイムスタンプはtrueである必要があります。アンダースコア付きフィールドは、アンダースコア設定で設定されます。

options.tableName string
  • オプション

freezeTableNameがtrueの場合を除き、デフォルトは複数形にされたモデル名です。その場合は、モデル名をそのまま使用します。

options.schema string
  • オプション
  • デフォルト: 'public'

schema

options.engine string
  • オプション

モデルのテーブルのエンジンを指定します

options.charset string
  • オプション

モデルのテーブルの文字セットを指定します

options.comment string
  • オプション

モデルのテーブルのコメントを指定します

options.collate string
  • オプション

モデルのテーブルの照合順序を指定します

options.initialAutoIncrement string
  • オプション

MySQLのテーブルの初期AUTO_INCREMENT値を設定します。

options.hooks object
  • オプション

特定のライフサイクルイベントの前後に呼び出されるフック関数のオブジェクト。使用可能なフックは、beforeValidate、afterValidate、validationFailed、beforeBulkCreate、beforeBulkDestroy、beforeBulkUpdate、beforeCreate、beforeDestroy、beforeUpdate、afterCreate、beforeSave、afterDestroy、afterUpdate、afterBulkCreate、afterSave、afterBulkDestroy、afterBulkUpdateです。フック関数とそのシグネチャの詳細については、「フック」を参照してください。各プロパティは、関数または関数の配列のいずれかになります。

options.validate object
  • オプション

モデル全体の検証のオブジェクト。検証では、thisを介してすべてのモデル値にアクセスできます。バリデーター関数が引数を取る場合、それは非同期と見なされ、オプションのエラーを受け入れるコールバックとともに呼び出されます。

options.whereMergeStrategy 'and' | 'overwrite'
  • オプション

スコープのマージ戦略を指定します(デフォルトは 'overwrite')。'and' 戦略は、最上位レベルにOp.andを追加することにより、スコープのwhereプロパティをマージします。 'overwrite' 戦略は、最後に定義された属性を使用して同様の属性を上書きします。

戻り値

モデル

Project.init({
  columnA: {
    type: Sequelize.BOOLEAN,
    validate: {
      is: ['[a-z]','i'],        // will only allow letters
      max: 23,                  // only allow values <= 23
      isIn: {
        args: [['en', 'zh']],
        msg: "Must be English or Chinese"
      }
    },
    field: 'column_a'
    // Other attributes here
  },
  columnB: Sequelize.STRING,
  columnC: 'MY VERY OWN COLUMN TYPE'
}, {sequelize})

sequelize.models.modelName // The model will now be available in models under the class name

参照

public static async max(field: 文字列, options: オブジェクト): Promise<*> ソース

フィールドの最大値を検索します。

パラメーター

名前属性説明
field string

属性/フィールド名

options object
  • オプション

aggregateを参照

戻り値

Promise<*>

参照

public static async min(field: 文字列, options: オブジェクト): Promise<*> ソース

フィールドの最小値を検索します。

パラメーター

名前属性説明
field string

属性/フィールド名

options object
  • オプション

aggregateを参照

戻り値

Promise<*>

参照

public static removeAttribute(attribute: 文字列) ソース

モデル定義から属性を削除します。

パラメーター

名前属性説明
attribute string

削除する属性の名前

public static async restore(options: オブジェクト): Promise ソース

paranoid が有効な場合、複数のインスタンスを復元します。

パラメーター

名前属性説明
options object

復元オプション

options.where object
  • オプション

復元をフィルターします

options.hooks boolean
  • オプション
  • デフォルト: true

バルク復元フックの前後に実行しますか?

options.individualHooks boolean
  • オプション
  • デフォルト: false

trueに設定すると、復元はwhereパラメーター内のすべてのレコードを見つけ、各行でバルク復元フックの前後を実行します

options.limit number
  • オプション

非削除にする行数(mysqlのみ)

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.benchmark boolean
  • オプション
  • デフォルト: false

クエリ実行時間をミリ秒単位でロギング関数 (options.logging) の 2 番目の引数として渡します。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

戻り値

Promise

public static schema(schema: 文字列, options: オブジェクト): Model ソース

このモデルにスキーマを適用します。postgresの場合、実際にはスキーマがテーブル名の前に配置されます- "schema"."tableName"。一方、mysqlとsqliteの場合、スキーマはテーブル名の前に付加されます-'schema.tablename'

このメソッドは、複数のスキーマで同じモデルが必要なユースケースで使用することを目的としています。このようなユースケースでは、モデルが正しいスキーマで作成されるように、各モデルに対してmodel.schema(schema, [options]).sync()を呼び出すことが重要です。

モデルごとに単一のデフォルトスキーマが必要な場合は、モデルのdefine()呼び出し中にoptions.schema='schema'パラメーターを設定します。

パラメーター

名前属性説明
schema string

スキーマの名前

options object
  • オプション

スキーマオプション

options.schemaDelimiter string
  • オプション
  • デフォルト: '.'

スキーマ名とテーブル名を区切る文字

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.benchmark boolean
  • オプション
  • デフォルト: false

クエリ実行時間をミリ秒単位でロギング関数 (options.logging) の 2 番目の引数として渡します。

戻り値

モデル

参照

  • デフォルトのスキーマの設定の詳細については、Sequelize#defineを参照してください。

public static scope(option: 配列 | オブジェクト | 文字列): Model ソース

define で作成されたスコープをモデルに適用します。

パラメーター

名前属性説明
option 配列 | オブジェクト | 文字列
  • オプション
  • nullable: true

適用するスコープ。スコープは、連続した引数として、または引数の配列として渡すことができます。引数なしで単純なスコープとスコープ関数を適用するには、それらを文字列として渡します。スコープ関数の場合は、methodプロパティを持つオブジェクトを渡します。値は、メソッドが引数を取らない場合は文字列、または最初の要素がメソッドの名前で、連続した要素がそのメソッドへの引数である配列のいずれかになります。デフォルトを含むすべてのスコープを削除するには、nullを渡します。

戻り値

モデル

スコープが適用されたモデルへの参照。返されたモデルで再度scopeを呼び出すと、前のスコープがクリアされます。

スコープを作成する方法
const Model = sequelize.define('model', attributes, {
  defaultScope: {
    where: {
      username: 'dan'
    },
    limit: 12
  },
  scopes: {
    isALie: {
      where: {
        stuff: 'cake'
      }
    },
    complexFunction: function(email, accessLevel) {
      return {
        where: {
          email: {
            [Op.like]: email
          },
          access_level {
            [Op.gte]: accessLevel
          }
        }
      }
    }
  }
})

# As you have defined a default scope, every time you do Model.find, the default scope is appended to your query. Here's a couple of examples:

Model.findAll() // WHERE username = 'dan'
Model.findAll({ where: { age: { [Op.gt]: 12 } } }) // WHERE age > 12 AND username = 'dan'
スコープ関数を呼び出すには、次のことができます
Model.scope({ method: ['complexFunction', '[email protected]', 42]}).findAll()
// WHERE email like '[email protected]%' AND access_level >= 42

public static async sum(field: string, options: object): Promise<number> source

フィールドの合計を検索します。

パラメーター

名前属性説明
field string

属性/フィールド名

options object
  • オプション

aggregateを参照

戻り値

Promise<number>

参照

public static async sync(options: object): Promise<Model> source

このモデルをDBに同期します。つまり、テーブルを作成します。

パラメーター

名前属性説明
options object
  • オプション

同期オプション

戻り値

Promise<Model>

参照

  • オプションについては Sequelize#sync を参照してください。

public static async truncate(options: object): Promise source

モデルのすべてのインスタンスを切り捨てます。これは Model.destroy({ truncate: true }) の便利なメソッドです。

パラメーター

名前属性説明
options object
  • オプション

truncate に加えて Model.destroy に渡されるオプション。

options.cascade boolean | Function
  • オプション
  • デフォルト: false

指定されたテーブルへの外部キー参照を持つ、または CASCADE によりグループに追加されたテーブルをすべて切り捨てます。

options.restartIdentity boolean
  • オプション
  • デフォルト: false

切り捨てられたテーブルの列が所有するシーケンスを自動的に再開します。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.logging boolean | Function
  • オプション

SQLクエリをログに記録する関数、またはログを記録しない場合は false。

options.benchmark boolean
  • オプション
  • デフォルト: false

クエリ実行時間をミリ秒単位でロギング関数 (options.logging) の 2 番目の引数として渡します。

options.searchPath string
  • オプション
  • デフォルト: DEFAULT

スキーマsearch_pathを指定するためのオプションのパラメータ(Postgresのみ)

戻り値

Promise

参照

  • 詳細については Model.destroy を参照してください。

public static unscoped(): Model source

スコープなしのモデルを取得します。

戻り値

モデル

public static async update(values: object, options: object): Promise<Array<number, number>> source

whereオプションに一致する複数のインスタンスを更新します。

パラメーター

名前属性説明
values object

更新する値のハッシュ

options object

更新オプション

options.where object

検索の範囲を記述するオプション。

options.paranoid boolean
  • オプション
  • デフォルト: true

true の場合、削除されていないレコードのみが更新されます。false の場合、削除されたレコードと削除されていないレコードの両方が更新されます。モデルで options.paranoid が true の場合にのみ適用されます。

options.fields Array
  • オプション

更新するフィールド(デフォルトはすべてのフィールド)

options.validate boolean
  • オプション
  • デフォルト: true

各行が挿入前に検証される必要があるかどうか。1つの行が検証に失敗した場合、挿入全体が失敗します。

options.hooks boolean
  • オプション
  • デフォルト: true

一括更新フックの前後に実行しますか?

options.sideEffects boolean
  • オプション
  • デフォルト: true

仮想セッターの副作用を更新するかどうか。

options.individualHooks boolean
  • オプション
  • デフォルト: false

更新フックの前後に実行しますか? true の場合、SELECT の後に個々の UPDATE が実行されます。フックにロウデータを渡す必要があるため、select が必要です。

options.returning boolean | Array
  • オプション
  • デフォルト: false

trueの場合、定義されたすべての値を取得するためにRETURNING <モデル列>を追加します。列名の配列の場合、特定の列を取得するためにRETURNING <列>を追加します(Postgresのみ)。

options.limit number
  • オプション

更新する行数(mysql と mariadb のみ。MSSQL では TOP(n) として実装。sqlite では rowid が存在する場合のみサポートされます)

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.benchmark boolean
  • オプション
  • デフォルト: false

クエリ実行時間をミリ秒単位でロギング関数 (options.logging) の 2 番目の引数として渡します。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.silent boolean
  • オプション
  • デフォルト: false

trueの場合、updatedAtタイムスタンプは更新されません。

戻り値

Promise<Array<number, number>>

Promise は 1 つまたは 2 つの要素を持つ配列を返します。最初の要素は常に影響を受けた行数であり、2 番目の要素は実際に影響を受けた行です(options.returning が true の Postgres でのみサポートされます)。

public static async upsert(values: object, options: object): Promise<Array<Model, boolean|null>> source

単一行を挿入または更新します。主キーまたは一意キーで指定された値に一致する行が見つかった場合は、更新が実行されます。一意のインデックスは、テーブル内だけでなく、sequelize モデルで定義する必要があることに注意してください。そうしないと、sequelize が更新する必要がある行を識別できないため、一意制約違反が発生する可能性があります。

実装の詳細

  • MySQL - `ON DUPLICATE KEY UPDATE` で実装されています。
  • PostgreSQL - `ON CONFLICT DO UPDATE` で実装されています。更新データに PK フィールドが含まれている場合、PK がデフォルトの競合キーとして選択されます。それ以外の場合は、競合キーの要件を満たすことができる最初の一意制約/インデックスが選択されます。
  • SQLite - `ON CONFLICT DO UPDATE` で実装されています。
  • MSSQL - MERGE および WHEN (NOT) MATCHED THEN を使用した単一のクエリとして実装されています。

注意 Postgres/SQLite は、行が作成されたか更新されたかに関係なく、作成に対して null を返します。

パラメーター

名前属性説明
values object

upsert する値のハッシュ

options object
  • オプション

upsert オプション

options.validate boolean
  • オプション
  • デフォルト: true

行が挿入される前に検証を実行します。

options.fields Array
  • オプション
  • デフォルト:Object.keys(this.attributes)

レコードが既に存在する場合に更新するフィールド。デフォルトは、変更されたすべてのフィールドです。指定されたフィールドが提供された values オブジェクトに存在しない場合でも、挿入が試行されますが、重複するキーの競合は無視されます。

options.hooks boolean
  • オプション
  • デフォルト: true

upsert フックの前後に実行しますか?

options.returning boolean
  • オプション
  • デフォルト: true

true の場合、自動生成された値を取得します。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.benchmark boolean
  • オプション
  • デフォルト: false

クエリ実行時間をミリ秒単位でロギング関数 (options.logging) の 2 番目の引数として渡します。

options.searchPath string
  • オプション
  • デフォルト: DEFAULT

スキーマsearch_pathを指定するためのオプションのパラメータ(Postgresのみ)

options.conflictFields Array<string>
  • オプション

クエリのON CONFLICT部分の競合フィールドのオプションのオーバーライド。Postgres >= 9.5およびSQLite >= 3.24.0でのみサポートされています。

戻り値

Promise<Array<Model, boolean|null>>

2 つの要素を持つ配列を返します。最初の要素は新しいレコードであり、2 番目の要素は、作成されたばかりの場合は true、既に存在する場合は false です(Postgres および SQLite を除く。これらはこれを検出できず、常にブール値の代わりに null を返します)。

公開コンストラクター

public constructor(values: object, options: object) source

新しいモデルインスタンスを構築します。

パラメーター

名前属性説明
values object
  • オプション
  • デフォルト: {}

キーと値のペアのオブジェクト

options object
  • オプション

インスタンス構築オプション

options.raw boolean
  • オプション
  • デフォルト: false

trueに設定すると、値はフィールドと仮想セッターを無視します。

options.isNewRecord boolean
  • オプション
  • デフォルト: true

これは新しいレコードですか

options.include Array
  • オプション

includeオプションの配列 - プリフェッチ/インクルードされたモデルインスタンスを構築するために使用されます。setを参照

パブリックメンバ

public isNewRecord: boolean: * source

このインスタンスがまだデータベースに永続化されていない場合にtrueを返します。

プロパティ

名前属性説明
isNewRecord *

戻り値

boolean

戻り値のプロパティ

名前属性説明
isNewRecord *

public get sequelize: Sequelize: * source

Sequelizeインスタンスへの参照

プロパティ

名前属性説明
sequelize *

戻り値

Sequelize

戻り値のプロパティ

名前属性説明
sequelize *

参照

パブリックメソッド

public changed(key: string, value: any): boolean | Array source

changedが文字列で呼び出されると、dataValues内のそのキーの値が_previousDataValuesの値と異なるかどうかを示すブール値を返します。

引数なしで changed が呼び出された場合、変更されたキーの配列が返されます。

引数なしで changed が呼び出され、キーが変更されていない場合は、false が返されます。

ネストされた (JSON など) プロパティのプロパティが手動で編集された場合、この関数は false を返すことに注意してください。これらの場合は、手動で changed('key', true) を呼び出す必要があります。完全に新しいオブジェクト (たとえば、ディープクローン) を書き込むと検出されます。

パラメーター

名前属性説明
キー string
  • オプション

ステータスを確認または変更するキー

any
  • オプション

設定する値

戻り値

boolean | Array

```
const mdl = await MyModel.findOne();
mdl.myJsonField.a = 1;
console.log(mdl.changed()) => false
mdl.save(); // this will not save anything
mdl.changed('myJsonField', true);
console.log(mdl.changed()) => ['myJsonField']
mdl.save(); // will save
```

public async decrement(fields: string | Array | object, options: object): Promise source

1 つ以上の列の値を減らします。これはデータベースで行われるため、インスタンスに現在保存されている値は使用しません。減分は

SET column = column - X

クエリを使用して行われます。更新されたインスタンスは、デフォルトで Postgres で返されます。ただし、他のダイアレクトでは、新しい値を取得するためにリロードを行う必要があります。

パラメーター

名前属性説明
fields string | Array | object

文字列が指定されている場合、その列はオプションで指定された by の値だけ減分されます。配列が指定されている場合は、各列についても同じことが当てはまります。オブジェクトが指定されている場合、各列は指定された値だけ減分されます

options object
  • オプション

減分オプション

options.by number
  • オプション
  • デフォルト: 1

減分する数

options.silent boolean
  • オプション
  • デフォルト: false

trueの場合、updatedAtタイムスタンプは更新されません。

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.searchPath string
  • オプション
  • デフォルト: DEFAULT

スキーマsearch_pathを指定するためのオプションのパラメータ(Postgresのみ)

options.returning boolean
  • オプション
  • デフォルト: true

自動生成された値を取得するために RETURNING * を追加します(Postgres のみ)

戻り値

Promise

instance.decrement('number') // decrement number by 1

instance.decrement(['number', 'count'], { by: 2 }) // decrement number and count by 2

// decrement answer by 42, and tries by 1.
// `by` is ignored, since each column has its own value
instance.decrement({ answer: 42, tries: 1}, { by: 2 })

参照

public async destroy(options: object): Promise source

このインスタンスに対応する行を破棄します。paranoid の設定によっては、行は完全に削除されるか、deletedAt タイムスタンプが現在の時刻に設定されます。

パラメーター

名前属性説明
options object
  • オプション
  • デフォルト: {}

破棄オプション

options.force boolean
  • オプション
  • デフォルト: false

true に設定すると、paranoid モデルは実際に削除されます

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.searchPath string
  • オプション
  • デフォルト: DEFAULT

スキーマsearch_pathを指定するためのオプションのパラメータ(Postgresのみ)

戻り値

Promise

public equals(other: Model): boolean source

このインスタンスとotherインスタンスが同じ行を参照しているかどうかを確認します。

パラメーター

名前属性説明
その他 モデル

比較対象の他のインスタンス

戻り値

boolean

public equalsOneOf(others: Array<Model>): boolean source

equalsを呼び出して、これがothersのいずれかに等しいかどうかを確認します。

パラメーター

名前属性説明
その他 Array<Model>

比較対象のインスタンスの配列

戻り値

boolean

public get(key: string, options: object): object | any source

キーが指定されていない場合は、仮想ゲッターも呼び出して、インスタンスのすべての値を返します。

key が指定され、そのキーに対応するフィールドまたは仮想ゲッターが存在する場合、そのゲッターを呼び出します。それ以外の場合は、key の値を返します。

パラメーター

名前属性説明
キー string
  • オプション

値を取得するキー

options object
  • オプション

get のオプション

options.plain boolean
  • オプション
  • デフォルト: false

true に設定すると、含まれるインスタンスはプレーンなオブジェクトとして返されます

options.raw boolean
  • オプション
  • デフォルト: false

true に設定すると、フィールドおよび仮想セッターは無視されます

戻り値

object | any

public getDataValue(key: string): any source

基になるデータ値の値を取得します。

パラメーター

名前属性説明
キー string

インスタンスのデータストアを検索するキー

戻り値

any

public async increment(fields: string | Array | object, options: object): Promise<Model> since 4.0.0 source

1つ以上のカラムの値をインクリメントします。これはデータベースで行われるため、インスタンスに現在格納されている値は使用されません。インクリメントは以下を使用して行われます。

SET column = column + X

クエリを使用して行われます。更新されたインスタンスは、デフォルトで Postgres で返されます。ただし、他のダイアレクトでは、新しい値を取得するためにリロードを行う必要があります。

パラメーター

名前属性説明
fields string | Array | object

文字列が指定されている場合、その列はオプションで指定されたbyの値だけ減算されます。配列が指定されている場合は、各列で同じことが当てはまります。オブジェクトが指定されている場合は、各列が指定された値だけ減算されます。

options object
  • オプション

options

options.by number
  • オプション
  • デフォルト: 1

増分する数

options.silent boolean
  • オプション
  • デフォルト: false

trueの場合、updatedAtタイムスタンプは更新されません。

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.searchPath string
  • オプション
  • デフォルト: DEFAULT

スキーマsearch_pathを指定するためのオプションのパラメータ(Postgresのみ)

options.returning boolean
  • オプション
  • デフォルト: true

自動生成された値を取得するために RETURNING * を追加します(Postgres のみ)

戻り値

Promise<Model>

instance.increment('number') // increment number by 1

instance.increment(['number', 'count'], { by: 2 }) // increment number and count by 2

// increment answer by 42, and tries by 1.
// `by` is ignored, since each column has its own value
instance.increment({ answer: 42, tries: 1}, { by: 2 })

参照

public isSoftDeleted(): boolean source

インスタンスが「ソフト削除」されているかどうかを判断するためのヘルパーメソッド。これは、実装者が deletedAt 属性を別の名前に変更した場合に特に役立ちます。このメソッドでは、paranoid が有効になっている必要があります。

戻り値

boolean

public previous(key: string): any | Array<any> source

_previousDataValuesからキーの前の値を返します。

キーなしで呼び出された場合、変更されたすべての値の以前の値を返します

パラメーター

名前属性説明
キー string
  • オプション

以前の値を取得するキー

戻り値

any | Array<any>

public async reload(options: object): Promise<Model> source

現在のインスタンスをインプレースで更新します。つまり、オブジェクトを DB からの現在のデータで更新し、同じオブジェクトを返します。これは、find(Instance.id) を実行するのとは異なります。なぜなら、それは新しいインスタンスを作成して返すからです。このメソッドでは、インスタンスへのすべての参照が新しいデータで更新され、新しいオブジェクトは作成されません。

パラメーター

名前属性説明
options object
  • オプション

Model.find に渡されるオプション

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

戻り値

Promise<Model>

参照

public async restore(options: object): Promise source

このインスタンスに対応する行を復元します。パラノイドモデルでのみ使用可能です。

パラメーター

名前属性説明
options object
  • オプション
  • デフォルト: {}

復元オプション

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

戻り値

Promise

public async save(options: object): Promise<Model> source

このインスタンスを検証し、検証に合格した場合、データベースに永続化します。

保存されたインスタンスに解決される Promise を返します(または、Sequelize.ValidationError でリジェクトされます。これには、検証に失敗した各フィールドのプロパティと、そのフィールドのエラーメッセージが含まれます)。

このメソッドは、変更されたフィールドのみを UPDATE するように最適化されています。何も変更されていない場合、SQL クエリは実行されません。

このメソッドは、イーガーロードされた関連付けを認識しません。言い換えれば、別のモデルインスタンス(子)がこのインスタンス(親)でイーガーロードされ、子で何かを変更した場合、save() を呼び出すと、子で発生した変更は単純に無視されます。

パラメーター

名前属性説明
options object
  • オプション

save のオプション

options.fields string[]
  • オプション

データベース列を表す文字列のオプションの配列。フィールドが指定されている場合、それらの列のみが検証および保存されます。

options.silent boolean
  • オプション
  • デフォルト: false

trueの場合、updatedAtタイムスタンプは更新されません。

options.validate boolean
  • オプション
  • デフォルト: true

falseの場合、バリデーションは実行されません。

options.hooks boolean
  • オプション
  • デフォルト: true

作成/更新の前と後に + バリデーションフックを実行します

options.logging Function
  • オプション
  • デフォルト: false

SQL をログに記録するために、クエリの実行中に実行される関数。

options.transaction Transaction
  • オプション

クエリを実行するトランザクション

options.searchPath string
  • オプション
  • デフォルト: DEFAULT

スキーマsearch_pathを指定するためのオプションのパラメータ(Postgresのみ)

options.returning boolean
  • オプション

自動生成された値を取得するために RETURNING * を追加します(Postgres のみ)

戻り値

Promise<Model>

public set(key: string | object, value: any, options: object): Model source

set は、インスタンスの値を更新するために使用されます(インスタンスの sequelize 表現です。save を実際に呼び出すまで何も永続化されないことに注意してください)。最も基本的な形式では、set は基になる dataValues オブジェクトに格納された値を更新します。ただし、キーに対してカスタムセッター関数が定義されている場合は、代わりにその関数が呼び出されます。セッターをバイパスするには、オプションオブジェクトに raw: true を渡すことができます。

set がオブジェクトで呼び出された場合、オブジェクトをループし、キーと値のペアごとに再帰的に set を呼び出します。raw を true に設定すると、基になる dataValues は、渡されたオブジェクトに直接設定されるか、dataValues にすでに値が含まれている場合は、dataValues を拡張するために使用されます。

set が呼び出されると、フィールドの以前の値が保存され、変更フラグが設定されます(changed を参照)。

set は、関連付けのインスタンスを構築するためにも使用できます。そのような値がある場合です。関連付けで set を使用する場合は、プロパティキーが関連付けのエイリアスと一致していることを確認し、適切な include オプションが設定されていることを確認する必要があります(.build() または .findOne() から)。

JSON/JSONB 属性のドットで区切られたキーで呼び出すと、値がネストされ、オブジェクト全体が変更されたものとしてフラグが設定されます。

パラメーター

名前属性説明
キー string | object

設定するキー。文字列またはオブジェクトにすることができます。文字列の場合、そのキーを設定し、オブジェクトの場合はすべてのオブジェクトプロパティをループしてそれらを設定します。

any

設定する値

options object
  • オプション

set のオプション

options.raw boolean
  • オプション
  • デフォルト: false

true に設定すると、フィールドおよび仮想セッターは無視されます

options.reset boolean
  • オプション
  • デフォルト: false

以前に設定されたすべてのデータ値をクリアします

戻り値

モデル

参照

  • インクルードの詳細については、Model.findAll を参照してください

public setDataValue(key: string, value: any) source

基になるデータ値を更新します

パラメーター

名前属性説明
キー string

インスタンスのデータストアに設定するキー

any

指定されたキーの新しい値

public toJSON(): object source

インスタンスを JSON 表現に変換します。キーなしで get を呼び出すことへのプロキシ。これは、DB から取得したすべての値を取得し、すべてのカスタムゲッターを適用することを意味します。

戻り値

object

参照

public async update(values: object, options: object): Promise<Model> source

これは set を呼び出してから save を呼び出すのと同じですが、渡された正確な値のみを保存するため、よりアトミックで安全です。

パラメーター

名前属性説明
values object

set を参照

options object

save を参照

戻り値

Promise<Model>

参照

public async validate(options: object): Promise source

モデル定義で設定された検証ルールに従って、このインスタンスの属性を検証します。

検証が成功した場合にのみ Promise が履行されます。それ以外の場合は、{ field name : [error msgs] } エントリを含む Error インスタンスをリジェクトします。

パラメーター

名前属性説明
options object
  • オプション

バリデーターに渡されるオプション

options.skip Array
  • オプション

文字列の配列。この配列にあるすべてのプロパティは検証されません

options.fields Array
  • オプション

文字列の配列。この配列にあるプロパティのみが検証されます

options.hooks boolean
  • オプション
  • デフォルト: true

検証フックの前後に実行します

戻り値

Promise

public where(checkVersion: boolean): object source

このインスタンスのクエリを表すオブジェクトを取得します。options.where とともに使用します。

パラメーター

名前属性説明
checkVersion boolean
  • オプション
  • デフォルト: false

where ハッシュにバージョン属性を含めます

戻り値

object