как обновить атрибут в столбце данных jsonb с помощью postgres - PullRequest
0 голосов
/ 28 сентября 2018

Привет, у меня есть эта структура в моем столбце jsonb в postgres

{

    "cronograma_actividades": {
      "section_template_id": 5,
      "ciclos": [
        {
          "ciclo_verano": {
            "nro_semanas_max": 9,
            "programas": [
              {
                "pregrado": {
                  "modalidades": [
                    {
                      "type": "presencial",
                      "codigo_formula": "FOR2234",
                      "unidades": [
                        {
                          "nro": 1,
                          "titulo": "Unidad aprendi",
                          "logro": "Logro de una unidad es texto",
                          "semanas": [

                                  ]
                                },
                                {}
                              ]
                            },


  ]
}

Так как я могу обновить поле codigo_formula с postgres, этот столбец является типом jsonb, я нахожу json_object_set_path, но я не знаю, как получить доступк глубокому дереву

С уважением

1 Ответ

0 голосов
/ 01 октября 2018

Предполагая, что столбец, содержащий ваш jsonb, называется "testcol", вы можете сделать это:

update t_test set testcol = jsonb_set(testcol, '{cronograma_actividades,ciclos,0,ciclo_verano,programas,0,pregrado,modalidades,0}', jsonb('{"cordigo_formula":"new value"}'), false);

0 значений указывают позицию в вашем массиве.На самом деле впечатляющий пост о json (b) в postgresql, который вы можете прочитать прямо здесь.

...