Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在sequelize中只更新一行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用Sequelize作为ORM以及express.js下面是我的简约表格结构.
Id  status          phone

1     0             09620701828
2     0             09620701828

现在当api请求要在终点上进行时,我必须更新属于我从请求获得的特定电话的最后一个id的状态.原始MySQL查询将是UPDATE表SET status = 1其中phone =’09620701828’ORDER BY id DESC LIMIT 1;

我如何使用Sequelize更新方法实现相同目的.以下是我的尝试

models.customerLeadFeedback.update(
    {status: 1},{ 
        where: {phone : '09620701828'},order: [['id','DESC']],limit : 1

    }).then(function () {
        res.sendStatus(200);
    })`

但order by子句不适用于上面和更新id的状态1.任何人都可以帮助我,而不使用sequelize中的原始查询.

解决方法

似乎Sequelize的模型#更新功能不支持订购 – 请参阅 http://sequelize.readthedocs.io/en/v3/api/model/#updatevalues-options-promisearrayaffectedcount-affectedrows的文档

如果您确实希望通过排序来定位行,则可以先获取行,然后更新它:

models.customerLeadFeedback.findOne(
  {status: 1},{ 
    where: {phone : '09620701828'},'DESC']]
}).then(function (record) {
  return record.update({status: 1});
}).then(function (record) {
    res.sendStatus(200);
});

使用两个查询而不是一个查询效率较低,但如果您不想使用原始查询,则当前看起来是您唯一的选择.

大佬总结

以上是大佬教程为你收集整理的node.js – 在sequelize中只更新一行全部内容,希望文章能够帮你解决node.js – 在sequelize中只更新一行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: