簡體   English   中英

為jsonb現有密鑰添加值並更新其他postgres

[英]Add value to jsonb existing key and update others postgres

如何將值添加到jsonb鍵? 范例`

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

更新后必須

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

從節點插入時已更新,所以沒有問題,我可以在節點中選擇派生類的值,添加新值並進行更新,是否還有其他方法可以在不使用節點的情況下進行1次查詢?

如果我正確理解您的任務,則只需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)

除非您當然有舊版本...

更新以更改驅動程序的att值:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM