Как поменять все елементы json массива которые подходят под условие в Postgres

У меня есть таблица в которой есть столбец c массивом структур к примеру:

{
  "fields": [
    {
      
      "name": "name",
      "type": "text",
    },
    {
      "name": "ID",
      "type": "string",
      "value": "123",         
    },
    {
      "name": "description",
      "type": "text",
      "label": "Описание",
    }

Я хочу добавить дополнительное поле value всем элементам которые соответствуют условию type = text

Я могу сделать такой запрос но он работает только если элемент будет один:

UPDATE table
SET payload = jsonb_set(payload,
                        ('{fields, '||(SELECT position-1
                                       FROM table, jsonb_array_elements(table.payload->'fields') with ordinality arr(elem, position)
                                       WHERE name = 'testRow' AND (elem->>'type') = 'text')||', value}')::text[],
                        '"test value"'::jsonb, true)
WHERE name = 'testRow';

Вопрос в том как мне добавить дополнительное поле value ВСЕМ элементам которые соответствуют условию type = text


Ответы (0 шт):