如何使用 sequelize/postgres 添加嵌套的 JSONB 字段
How to add a nested JSONB field with sequelize/postgres
在 User
模型中,有一个 JSONB
字段 viewer_data
目前是 null
例如 user
。需要在 viewer_data
下添加值为 1 的新字段 jwt_secret
。在 viewer_data
下添加 jwt_secret
后应如下所示:
user : {viewer_data : {"jwt_token":1}}
尝试了 set
和 insert
但它们都不起作用:
user = await User.findByPk(id);
console.log(user.viewer_data); //<<==output is null
//
user.set("viewer_data.jwt_secret", 1); //<<==throw an error of can't convert null to object as viewer_data is null
user.insert("view_data.jwt_secret", 1); //<<==error as insert is not a function
postgres版本是11,sequelize是6.3。
当 JSONB 字段 viewer_data
为空时。更新应该像这样完成:
user.set("viewer_data", {"prev_jwt_secret": xxx, "jwt_secret": xxx}};
在 User
模型中,有一个 JSONB
字段 viewer_data
目前是 null
例如 user
。需要在 viewer_data
下添加值为 1 的新字段 jwt_secret
。在 viewer_data
下添加 jwt_secret
后应如下所示:
user : {viewer_data : {"jwt_token":1}}
尝试了 set
和 insert
但它们都不起作用:
user = await User.findByPk(id);
console.log(user.viewer_data); //<<==output is null
//
user.set("viewer_data.jwt_secret", 1); //<<==throw an error of can't convert null to object as viewer_data is null
user.insert("view_data.jwt_secret", 1); //<<==error as insert is not a function
postgres版本是11,sequelize是6.3。
当 JSONB 字段 viewer_data
为空时。更新应该像这样完成:
user.set("viewer_data", {"prev_jwt_secret": xxx, "jwt_secret": xxx}};