我有一个"用户"表格中的一个字段" info"是一个JSON结构:
用户表包含以下字段:id,name,info,created
信息提交具有以下结构:
info:{ 电子邮件, 密码, 设备:{ 类型, 代币 } }
如何使用Sequelize更新Postgres中特定用户的令牌字段?
答案 0 :(得分:2)
我知道这是一个关于sequelize.js
的问题,但我对此并不了解,所以让我给出关于postgresql的一般答案(随意忽略它)。首先,postgresql不支持修改json
值。 json
列主要用于在数据库中存储JSON数据,而不是用于操作JSON数据。如果您确实想要在数据库中操作JSON数据,则必须使用jsonb
列。可以使用jsonb
函数和jsonb_set
运算符帮助修改||
。在您的情况下,如果您可以运行原始SQL查询,则可以执行以下操作:
UPDATE "user"
SET info = jsonb_set(info,'{device,token}','123')
WHERE id = 31;
答案 1 :(得分:0)
user.findOne({where: {id: 31}}).then((u) => {
u.device.update(info: {type, token})
});
这是一个用户表。 id 为 31 来更新 type 和 token 的值