如何在更新时在postgresql jsonb字段中追加对象

时间:2017-10-10 05:59:34

标签: sql postgresql postgresql-9.4

我想更新我的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"}]

1 个答案:

答案 0 :(得分:2)

使用连接运算符||将元素附加到数组:

UPDATE justjson
SET doc = doc || '{"age": "45", "name": "xyz"}'::jsonb
WHERE is = 1;