Sequelize-model.update与instance.update(正确的更新方式)

时间:2019-04-02 19:42:55

标签: javascript sql node.js sequelize.js

在Sequelize.js中更新行的正确方法是什么? 根据文档,我可以同时进行model.updateinstance.update

model.update-仅需要一个数据库调用(我认为),但是它的“批量”更新在有钩子的情况下不好。

instance.update-您首先需要找到该行,然后可以进行更新,因此该行至少要调用2次。它称为正常的单一更新,而不是批量更新。

我有带CRUD结构的REST API。除了mode.create之外,其他所有操作都无法完成,这很有意义。但是如何更新。什么是更新一行的正确方法? 还是关于我的需求,这是基于意见的问题?

1 个答案:

答案 0 :(得分:0)

好吧,就像您说的那样,更多地取决于您的需求。两种方法都是正确的。从文档中提取instance.update

的第一种方法
  

这与调用set并随后调用save相同,但是它仅保存传递给它的确切值,从而使其更原子且更安全。

这样更安全地更新记录。在您的api上,您可以将parameter设置为中间件,因此,例如,每次调用updatefindByIdremove时,始终首先找到实际对象,然后在那里更新或销毁它。

第二种方式model.update

  

更新与where选项匹配的多个实例。

因此,您可以立即使用where条件进行更新。

还请记住,第一个选项返回更新的对象,第二个选项返回一个数组,该数组包含被跟踪的记录数量。