У меня есть таблица my_table
со столбцом jsonb, содержащим некоторые данные, например, в одной строке столбец может содержать следующие данные:
[
{
"x_id": "1",
"type": "t1",
"parts": [
{ "part_id": "1", price: 400 },
{ "part_id": "2", price: 500 },
{ "part_id": "3", price: 0 }
]
},
{
"x_id": "2",
"type": "t1",
"parts": [
{ "part_id": "1", price: 1000 },
{ "part_id": "3", price: 60 }
]
},
{
"x_id": "3",
"type": "t2",
"parts": [
{ "part_id": "1", price: 100 },
{ "part_id": "3", price: 780 },
{ "part_id": "2", price: 990 }
]
}
]
Мне нужна помощь, чтобы найти, как удалить элемент из массива parts
с x_id
и part_id
.
Пример
учитывая x_id=2
и part_id=1
, мне нужно обновить данные, чтобы они стали:
[
{
"x_id": "1",
"type": "t1",
"parts": [
{ "part_id": "1", price: 400 },
{ "part_id": "2", price: 500 },
{ "part_id": "3", price: 0 }
]
},
{
"x_id": "2",
"type": "t1",
"parts": [
{ "part_id": "3", price: 60 }
]
},
{
"x_id": "3",
"type": "t2",
"parts": [
{ "part_id": "1", price: 100 },
{ "part_id": "3", price: 780 },
{ "part_id": "2", price: 990 }
]
}
]
PS1: эти данные не могут быть нормализованы, поэтому это не является возможным решением.
PS2: я использую PostgreSQL 9.6
PS3: я проверил этот вопрос и этот вопрос , но моя структура данных кажется слишком сложной по сравнению с другими вопросами, поэтому я не могу применить данные ответы.
Edit1 : данные json могут быть большими, особенно массив parts
, который может содержать от 0 до тысяч элементов.