[英]How to update array inside postgresql jsonb field?
我有一個帶有 jsonb 字段的表,一個值示例:
{
"id": "test",
"data": [
{
"folder1": ["id1", "id2", "id3"]
}
]
}
我想將數據中的數組 ["id1", "id2", "id3"] 替換為 [{"id": "id1", "size": 10}, {"id": "id2", "大小": 100}, {"id": "id3", "size": 1000}]:
{
"id": "test",
"data": [
{
"folder1": [
{"id": "id1", "size": 10},
{"id": "id2", "size": 100},
{"id": "id3", "size": 1000}
]
}
]
}
如果可以在單個 sql 結構中更新它,我需要用 pl/sql 來做嗎?
如果要替換的元素的路徑是固定的,則可以使用jsonb_set()
:
jsonb_set(
mycol,
'{data,0,folder1}',
'[{"id": "id1", "size": 10}, {"id": "id2", "size": 100}, {"id": "id3", "size": 1000}]'::jsonb
)
DB Fiddle 上的演示- 使用jsonb_pretty()
進行格式化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.