使用原始查询更新jsonb对象



我在配置文件模型中有这个字段

loginPrize: {
type: DataTypes.JSONB,
defaultValue : {
day : 0,
lastClaimed : dayjs().subtract(1,'d').format(),
collected : false
}
},

,我想使用原始查询

来更新它
let loginPrize = {
day: prizes.day,
lastClaimed: dayjs().format(),
collected: true
}
let stringPrize = JSON.stringify(loginPrize)
await Profile.sequelize?.query(
`update profile set ${prizes.type} = ${prizes.type} + ${prizes.prize} , 
loginPrize = to_jsonb(${stringPrize}::jsonb) ,where "playerId" = ${id}
`)

和我得到错误"语法错误在或附近"{">

如何更新

  1. loginPrice已经是一个JSON字符串,所以您不需要"to_jsonb"

  2. 使用替代品:https://sequelize.org/docs/v6/core-concepts/raw-queries/#replacements -以便sequelize可以正确引用

最新更新