在Postgres中使用Sequelize更新特定的JSON字段



我有一个"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

的值

最新更新