D3a*_*au5 5 javascript sql node.js sequelize.js
在 Sequelize.js 中更新行的正确方法是什么?根据文档,我可以同时执行model.update或instance.update.
model.update- 仅需要一次数据库调用(我认为),但它被称为“批量”更新,当您有例如钩子时,这并不好。
instance.update- 你需要首先找到该行,然后你可以更新,所以它的2至少2次调用。它被称为正常的单一更新,而不是批量更新。
我有带有 CRUD 结构的 REST API。创造不能以其他方式完成,而且mode.create它是有意义的。但是更新怎么样。更新一行的正确方法是什么?或者这只是关于我的需求并且是基于意见的问题?
嗯就像你说的,更多地取决于你的需求。两种方式都是正确的。从文档中获取, instance.update 的第一种方式
这与调用 set 然后调用 save 相同,但它只保存传递给它的确切值,使其更加原子化且更安全。
这样更新记录更安全。在您的 api 上,您可以将 a 设置parameter为 middlaware,因此每次您调用 时update,findById例如remove,始终首先找到实际对象,然后在那里更新或销毁它。
对于第二种方式model.update
更新与 where 选项匹配的多个实例。
因此,您可以根据条件立即更新where。
另请记住,第一个选项返回更新的对象,第二个选项返回一个数组,其中包含已更改的记录数。