gpt4 book ai didi

node.js - 在 sequelize 中只更新一行

转载 作者:搜寻专家 更新时间:2023-10-31 22:38:14 24 4
gpt4 key购买 nike

我正在使用 Sequelize 作为 ORM 以及 express.js 下面是我的简约表结构。

Id  status          phone

1 0 09620701828
2 0 09620701828

现在,当要在端点上发出 api 请求时,我必须更新属于我从请求中获取的特定电话的最后一个 ID 的状态。原始 MySql 查询将是 UPDATE table SET status=1 where 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 的Model#update 函数似乎不支持排序 - 请参阅 http://sequelize.readthedocs.io/en/v3/api/model/#updatevalues-options-promisearrayaffectedcount-affectedrows 上的文档

如果你真的想通过排序来定位行,你可以先获取行,然后更新它:

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

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

关于node.js - 在 sequelize 中只更新一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40403825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com