首页 > 解决方案 > 如何从单独列的嵌套 JSONB 值更新列?

问题描述

我正在尝试做这样的事情:

UserActivity.update({ 
    type: col("activity.type")
  }, {
    where : { 
      activity: { id: 4285299988 }
    } 
  })

其中列名是“活动”,它是一个 JSONB 字段。我需要以某种方式获取嵌套的“type”属性并将其分配给一个名为“type”的新列。

我可以找到很多关于如何在 where 子句中获取嵌套 JSONB 值的示例,但这不是我需要的。

标签: postgresqlsequelize.jsjsonb

解决方案


看起来我可以为此使用 sequelize.literal:

   UserActivity.update({ 
    type: literal(`activity ->> 'type'`)
  }, {
    where : { 
      activity: { id: 4285299988 }
    } 
  })

这个答案虽然与更新没有特别相关,但让我走上了正确的道路:sequelize postgres combine fn 'date' with jsonb value


推荐阅读