web-dev-qa-db-ja.com

異なる条件でsequelizeの複数の行を更新する

Postgresデータベースの行でsequelizeを使用して更新コマンドを実行しようとしています。同じ値で異なる条件を持つ複数の行を更新できるようにする必要があります。

たとえば、次のフィールドを含むユーザーテーブルがあるとします。

  • ID
  • ファーストネーム
  • 苗字
  • 性別
  • ロケーション
  • createdAt

このテーブルに4つのレコードがあり、IDが1と4のレコードを、ナイジェリアという新しい場所で更新するとします。

このようなもの: SET field1 = 'foo' WHERE id = 1, SET field1 = 'bar' WHERE id = 2

Sequelizeでそれを実現するにはどうすればよいですか?

6
proton

一度に複数のレコードを更新できますが、すべてのレコードに対して同じ更新を行います。異なる条件に対して異なる更新を行いたい場合は、その複数回実行する必要があります。

例:

これにより、fields1がfooに更新されます。ここで、idは1または4です。

let ids = [1,4];
Your_model.update({ field1 : 'foo' },{ where : { id : ids }}); 

これにより、idが1の場合はfield1がfooに更新され、idが4の場合はfield1がbarに更新されます。

Your_model.update({ field1 : 'foo' },{ where : { id : 1 }});
Your_model.update({ field1 : 'bar' },{ where : { id : 4 }}); 

これですべての疑問が解消されることを願っています。

4
Vivek Doshi