我正在尝试更新现有记录,旨在仅更新时间戳,但是每当我执行这个简单查询时,我都会收到一条错误消息:Invalid value [Function]
这是查询代码:
await db.Notification.update({
updatedAt: moment().format()
}, {
where: {
$and: [
{ 'permit_id': { $eq: id } },
{ 'user_id': { $eq: req.currentUser.id } },
]
}
});
网上还没有找到关于这个问题的任何解决方案,我还想强调以下代码可以正常工作:
await db.User.update({
refreshToken: null
},{
fields: ['refreshToken'],
where: {
id: req.currentUser.id,
}
});
即使它们不相关,我也尝试将它们相似,但仍然收到相同的结果。
我也试过:
where: { user_id: { $eq: req.currentUser.id } }
这样的运算符的单个 where 查询,其中字段和值都是整数或字符串类型,如果没有运算符 fields
对象中更新的字段,如用户更新查询 可能因为一个简单的错误或我错过的事情而过热。请问有什么想法吗?
最佳答案
我没有完全解决这个问题,而是找到了一个解决方法。我升级了我的 Sequelize 以使用 typescript ,这对我有用。
另一种解决方法是使用原始更新查询和/或指定更新的查询类型。例如:
totalEarnings = await db.sequelize.query('SELECT SUM("priceEstimate") FROM "Orders" WHERE "assignedCarId" IN (:id)', {
replacements: {id: carIds},
type: db.sequelize.QueryTypes.SELECT
});
关于node.js - Sequelize 在更新时抛出无效值 [Function],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53715412/