小编Ben*_*ock的帖子

在 PostgreSQL 中使用 JSONB 从数组中删除对象

我试图从我的数据库中删除一个元素。我要删除的元素位于一个名为 playerContainer 的 JSON 对象中,该对象包含一个名为玩家的数组。这一切都位于一个名为 site_content 的表中。我正在尝试根据它的 ID 删除该对象。

这是示例 JSON

"playersContainer": {
        "players": [
            {
                "id": "1",
                "name": "Nick",
                "teamName": "Shire Soldiers",
                "ratings": [
                    1,
                    5,
                    6,
                    9
                ],
                "assists": 17,
                "manOfTheMatches": 20,
                "cleanSheets": 1,
                "data": [
                    3,
                    2,
                    3,
                    5,
                    6
                ],
                "totalGoals": 19

            },
}
Run Code Online (Sandbox Code Playgroud)

下面是我试图用来删除数组中的对象的查询

UPDATE site_content
SET content = jsonb_set(content, '{playersContainer,players}'::text[], content->'playersContainer'->'id'->'players' #- '{1}'::jsonb
Run Code Online (Sandbox Code Playgroud)

但是,这似乎删除了表中内容行中的所有数据,而不仅仅是我的玩家数组中 ID 为 1 的数组。

postgresql delete update json

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

delete ×1

json ×1

postgresql ×1

update ×1