Присоединение к массиву jsonb в postgres с помощью jsonb_insert - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть таблица со столбцом jsonb, к которой я хочу добавить новую запись.

Это содержимое столбца данных моей таблицы.

data =    [
    { "id" : "1",
      "content" : "cat"},
    { "id" : "2",
      "content" : "rat"},
    { "id" : "3",
      "content" : "dog"},
       ...
       ...

    { "id" : "n",
      "content" : "hamster"}
    ]

Я хочу добавить

{ "id" : "n+1",
          "content" : "goat"}

к данным.Я знаю, что могу использовать оператор сцепления '||'сделать это.Тем не менее, я хочу понять, могу ли я использовать jsonb_insert для этого?могу ли я также использовать jsonb_insert для

  1. вставки новых записей в любое место произвольно
  2. вставку новой записи в начале массива jsonb
  3. добавление новой записи вмассив jsonb в конце

дополнительный вопрос;если я хочу изменить содержание идентификатора 3, от собаки к корове, я должен сделать;

SELECT jsonb_set(data, '{id, 4}', '{"content":"cow"}'::jsonb) FROM tablename;
...