Добавить значение в существующий ключ jsonb и обновить другие postgres - PullRequest
0 голосов
/ 29 мая 2018

Как добавить значения в ключ jsonb?Пример `

{"drivers": "15","updatedat":"someDate"}

после обновления должен быть

{"drivers":"15,...,26","updatedat":"nowTime"}

обновлен при вставке из узла, поэтому проблем нет, я могу выбрать значение производных в узле, добавить новое и обновить, IsЕсть ли другой способ сделать это с 1 запроса без использования узла?

1 Ответ

0 голосов
/ 29 мая 2018

Если я правильно понимаю вашу задачу, вам просто нужно jsonb_set:

t=# select jsonb_set('{"drivers": "15","updatedat":"someDate"}'::jsonb, '{updatedate}'::text[],to_jsonb(now()));
                                          jsonb_set
----------------------------------------------------------------------------------------------
 {"drivers": "15", "updatedat": "someDate", "updatedate": "2018-05-29T15:49:41.772188+00:00"}
(1 row)

, если у вас, конечно, нет более старой версии ...

обновить доизменить значение атрибута водителя:

t=# with c(j) as (values('{"drivers": "15","updatedat":"someDate"}'::jsonb))
select jsonb_set(j,'{drivers}'::text[],to_jsonb(j->>'drivers'||',...,26')) from c;
                     jsonb_set
---------------------------------------------------
 {"drivers": "15,...,26", "updatedat": "someDate"}
(1 row)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...