PostgreSQL:将对象追加到列表

问题描述

我有一个键为字符串的数据,值是json列表,看起来像

route

我想在ID|data A1|{key1:[{k1:v1,k2:v2},{{k3:v3,k4:v4}]} 的列表中附加json,例如{k9:v9,k7:v6},类似-

key1

我尝试了jsonb_set和其他函数,但是它们没有用,例如-

ID|data
A1|{key1:[{k1:v1,k4:v4},{k9:v9,k7:v6}]}

解决方法

在固定jsonb_insert()值的格式后,您需要使用JSONB函数来附加该部分(否则,您将获得“ ERROR:json类型的无效输入语法“):

UPDATE tbl_name
   SET data = jsonb_insert(data,'{key1,1}','{"k9":"v9","k7":"v6"}'::jsonb) 
 WHERE ID = 'A1'

Demo