如何使用sequelize / postgres添加嵌套的JSONB字段

问题描述

User模型中,有一个JSONB字段viewer_data,例如,null当前是user。需要在jwt_secret下添加一个值为1的新字段viewer_data。在jwt_secret下添加viewer_data后,其外观应如下所示:

  user : {viewer_data : {"jwt_token":1}}

尝试了setinsert,但它们都不起作用:

   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,后继版本是6.3。

解决方法

当JSONB字段viewer_data为空时。更新应这样进行:

  user.set("viewer_data",{"prev_jwt_secret": xxx,"jwt_secret": xxx}};

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...