我有一个"user"表,其中一个字段"info"是JSON结构:
user表有如下字段:id, name, info, created
info文件有这样的结构:
信息:{电子邮件,密码,设备:{类型,令牌}}
如何使用Sequelize在Postgres中更新特定用户的令牌字段?
我知道这是一个关于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;
user.findOne({where: {id: 31}}).then((u) => {
u.device.update(info: {type, token})
});
是一个用户表。id为31,用于更新type和token