从我的PostgreSQL12.8数据库的表行中,我试图从数组中删除一个对象,但它却从表中删除了整个对象array.
settings
列包含以下对象数组:
[
{
"id": 100,
"name": "testOne",
"settings": "settingOne"
},
{
"id": 101,
"name": testTwo,
"settings": "settingTwo"
},
]
我在users
表中有三行,其中列settings
的类型为jsonb
,其中包含一个对象array.
我想为所有用户删除id=101的对象.我try 了以下查询:
update users
set settings =
jsonb_set(settings , '{settings}', (settings->'id') - (select distinct position-1 from users, jsonb_array_elements(settings)
with ordinality arr(elem, position) WHERE elem->>'id' = '101')::int)
通过执行上述查询,它将从设置中删除所有内容.如何修改上述查询才能达到下面的结果?
[
{
"id": 100,
"name": "testOne"
"settings": "settingOne"
}
]