Sequelize:如何在sequelize更新查询后检索更新的记录而不使用另一个查询

Kam*_*ran 5 mysql sequelize.js

`    User.update({
  role: 'user'
}, {
  where: {
    email: email
  }
}).then(function(result) {
  //Returned value: either [0] or [1] i.e. record is updated or not
});
`
Run Code Online (Sandbox Code Playgroud)

这是续集更新查询,其中用户是模型(用户的角色通过电子邮件更新)。它工作正常,但我希望使用更新查询,我也能获取用户的数据。是否可以在不使用其他查询的情况下获取它?

jos*_*ing 4

不,如果没有另一个查询就不可能。这不是 Sequelize 的限制,而是 SQL 的限制。在幕后,sequelize 需要做:

update users set role = 'user' where email = 'test@example.com'
Run Code Online (Sandbox Code Playgroud)

这只会更新行,但不会检索任何行。然后,它需要做第二件事:

select * from users where email = 'test@example.com'
Run Code Online (Sandbox Code Playgroud)

实际获取(现已更新)行。