簡體   English   中英

從存儲在 postgresql 列中的數組中刪除 json 對象

[英]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'));

在線示例: https://rextester.com/HCJK50138

暫無
暫無

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

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