如何在 pg-promise 中使用 JSONB 操作

How to use JSONB operations with pg-promise

我正在为 pg-promise 和让它与 JSONB 一起工作而苦苦挣扎。我正在使用准备好的语句,我已经为这个 SQL 命令尝试了两种变体(我只是想用一组新的值更新 jsonb 列,基本上是附加):

  db.none({
    name: 'updateLike',
    text:`UPDATE posts
    SET likes_by = jsonb_set(likes_by, '{~}', '~'),
    likes_count = likes_count + 1
    WHERE post_id = `,
    values: [user_id, username, pid]
  })

  db.none({
    name: 'updateLike',
    text:`UPDATE posts
          SET likes_by = likes_by || '{"": ""}',
          likes_count = likes_count + 1
          WHERE post_id = `,
    values: [user_id, username, pid]
  })

它给我这样的错误:

错误:类型 json

的输入语法无效

错误:无法确定参数 $1

的数据类型

以前有人做过吗?

这就是我最后做的事情:

  db.none(`UPDATE posts
           SET likes_by = likes_by || '{~: ~}',
           likes_count = likes_count + 1
           WHERE post_id = #`,
           [user_id, username, pid]
  )

有效。谢谢!