[英]PostgreSQL update JSONB column from JSON string to Array of JSON objects
[英]Removing json objects from an array stored in postgresql column
我有一個 json 對象數組,我想從中刪除三個特定對象。 例如:
[{"id": "aaa"}, {"id": "aab"}, {"id": "aac"}, {"id": "aad"}]
我需要更新表並從數組中刪除包含"aaa"
、 "aab"
和"aac"
的對象,以便數組只包含
[{"id": "aad"}]
或任何其他 json 對象存儲在數組中並且不包含前面提到的存儲在“id”中的值。
我正在使用 Postgres,我只知道我需要使用 UPDATE,但僅此而已(我仍然是初學者)。
您需要取消嵌套數組,過濾掉不需要的元素,然后聚合回來:
update the_table
set the_column = (select jsonb_agg(j)
from jsonb_array_elements(the_table.the_column) as t(j)
where j ->> 'id' not in ('aaa','aab','aac'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.