У меня есть массив объектов, который выглядит, как это в столбце таблицы jsonb value
:Найти положение объекта в Postgres jsonb массива
"west": [
{"id": "aa92f346-7a93-4443-949b-4eab0badd983", "version": 1},
{"id": "cd92e346-6b04-3456-050a-5eeb0bddd027", "version": 3}
]
Я прицеливание, чтобы удалить некоторые объекты из этого массива на основе их идентификатор и версия так:
SELECT value::jsonb #- '{west, 1}' FROM game.settings;
Однако 1
не должны быть жестко закодированы, а скорее должно равняться положение объекта в массиве, который соответствует идентификатор и версию я ищу (в этот случай "id": "cd92e346-6b04-3456-050a-5eeb0bddd027", "version": 3
).
Как я могу определить это положение массива и передать его в пятно, которое в настоящее время хранится в моем жестком закодированном 1
?
Спасибо, я ищу индекс этого объекта в массиве. – MattDionis
Мне пришлось прочитать вопрос невнимательно, извините. Надеюсь, отредактированный ответ отражает реальную проблему сейчас. – klin