我尝试找出两种情况。我在具有这样结构的表中有一个jsonb列:
{
"1": {
"a": 0.084,
"b": 0.084,
"c": 0.084
},
"2": {
"a": 0.078,
"b": 0.0814,
"c": 0.078
},
"3": {
"a": 0.0928,
"b": 0.0975,
"c": 0.0975
}
}
如果我想更改“ 3”:{“ b”:}的值,我该怎么做?我尝试查看诸如 jsonb_set() 之类的函数,但是似乎我必须复制整个jsonb对象,并在每次我想要更新一个对象时重新粘贴它值。
我要解决的第二个问题是是否要删除整个“ 3”:{}对象,我似乎可以找到的唯一解决方案是使用 jsonb_set() < / strong>。
感谢您的帮助!
答案 0 :(得分:2)
您可以将jsonb_set()
函数与相关路径'{3,b}'
一起使用,以达到update
的作用:
SELECT jsonb_set(jsonb_data, '{3,b}','0.1')
FROM tab
其中0.1只是一个样本值
使用#-
运算符以进行delete
:
SELECT jsonb_data #- '{3}'
FROM tab