我想更新我的jsonb字段,它存储对象数组。 我想在其中添加新对象。
CREATE TABLE justjson ( id INTEGER, doc JSONB);
INSERT INTO justjson VALUES ( 1, '[
{
"name": "abc",
"age": "22"
},
{
"name": "def",
"age": "23"
}
]');
然后像
那样的值select doc from justjson;
doc
[{"age": "22", "name": "abc"}, {"age": "23", "name": "def"}]
现在我想在这个jsonb中添加新对象
{"age": "45", "name": "xyz"}
如何更新此字段?
我的输出,例如
doc
[{"age": "22", "name": "abc"}, {"age": "23", "name": "def"},{"age": "45", "name": "xyz"}]
答案 0 :(得分:2)
使用连接运算符||
将元素附加到数组:
UPDATE justjson
SET doc = doc || '{"age": "45", "name": "xyz"}'::jsonb
WHERE is = 1;