データベース/OMM]Seqlizeリファレンス1


1.概要
RDBを接続する最も代表的なORMツールSequelizeは、Queryを直接書く必要はなく、JavaScriptの構文を熟知することでDBの処理を支援するので便利です.
まず、PostgreSQLデータベースを使用する仮定の下で、Sequelizeを使用する場合は、良い点に注意してください.
2.SequelizeによるDB更新方法
DBの特定フィールドを更新できます.
次の図に示すように、sequelizeのupdateを使用して、特定のフィールドの内容を変更します.
更新する内容は最初のパラメータに反映され、2番目のパラメータはフィールドが属する行(record)を指定する必要があります.
await db.PostView.update({
                    field: after_update_value
                }, {
                    where: {
                        field: field_attribute
                    }
                });
特定のフィールドの値を直接取得してカウントする場合は、sequelizeでカウントできません(特定のフィールドの値はバックエンドレベルで定義されていません).
このようにsequelizeで更新するのが難しい場合はsequelizeです.組織はliteralまたは特定のクエリーを直接定義する方法で行うことができます.
await db.PostView.update({
                    field : sequelize.literal(
                        'field + 1'
                    )
                }, {
                    where: {
                        field_1: field_1_attribute,
                        field_2: field_2_attribute
                    }
                });
3.データベース表の直接更新
また、DB内の特定のフィールドをオブジェクトにインポートし、直接更新することもできます.
上記の更新方法を用いずに、特定のテーブル/rowの内容をオブジェクト情報にインポートし、直接更新してもよい.
まずcurrentTableを定義します(id値が受け入れられ、field id値と同じです).

const currentTable = db.findOne({
	where {
		field_id : id
	}
});

currentTable.field = currentTable.field + 1;
                await currentTable.save();
上記の方法でTableコンテンツを更新する場合は、後でdbを更新する必要があります.この情報はsave()によりDBで同期することも可能である.
4. created_at, updated_at
Sequeizeによって定義されたテーブル作成日(Created at)と更新日(Updated at)は、テーブル属性を自動的に認識することによって作成されます.
※PostgreSQL適用

以上のようにsequelizeテーブルのプロパティをcreate at、update atに設定し、DataTypeをDateに設定します.
created_at: DataTypes.DATE,
updated_at: DataTypes.DATE,
DBがPostgreSQLの場合、次のフィーチャーが適用されます.
  • テーブルが生成された場合、日付はcreate at、updated atに格納されます.
  • 内容が変更されると、updated atで対応する日付に変更され、保存されます.
  • 5.参照リンク
    sequelize特定のフィールドの置換
    https://github.com/sequelize/sequelize/issues/7268