我有两个场景正在尝试弄清楚。我在一个表中有一个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((。
谢谢你的帮助!
您可以将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
演示