Я пытаюсь обновить значение tit в трех записях базы данных, которые являются частью объекта массива jsonb, чтобы изменить заголовок gid 1 на 'newTitle Group 1' вместо просто 'group 1', используя postgresql и python .
create table groups (name varchar, grp jsonb)
insert into groups (name, grp) values
('joe', [{"gid": "1", "ona": "joe", "tit": "group 1 "}, {"gid": "2", "ona": "harry", "tit": "tester1 group 2"}, {"gid": "3", "ona": "moe", "tit": "group 3"}]),
('harry', [{"gid": "1", "ona": "joe", "tit": "group 1 "}, {"gid": "2", "ona": "harry", "tit": "tester1 group 2"}, {"gid": "3", "ona": "moe", "tit": "group 3"}])
('moe' , [{"gid": "1", "ona": "joe", "tit": "group 1 "}, {"gid": "2", "ona": "harry", "tit": "tester1 group 2"}, {"gid": "3", "ona": "moe", "tit": "group 3"}])
Я хочу получить результат:
('joe', [{"gid": "1", "ona": "joe", "tit": "newTitle Group 1'"}, {"gid": "2", "ona": "harry", "tit": "tester1 group 2"}, {"gid": "3", "ona": "moe", "tit": "group 3"}]),
('harry', [{"gid": "1", "ona": "joe", "tit": "newTitle Group 1'"}, {"gid": "2", "ona": "harry", "tit": "tester1 group 2"}, {"gid": "3", "ona": "moe", "tit": "group 3"}])
('moe' , [{"gid": "1", "ona": "joe", "tit": "newTitle Group 1'"}, {"gid": "2", "ona": "harry", "tit": "tester1 group 2"}, {"gid": "3", "ona": "moe", "tit": "group 3"}])
Я не нашел способа сделать это, помогите пожалуйста. Похоже, что большинство возможностей postgresql 9.5 предназначены для объектов jsonb, но не для массивов объектов.
Я пытался использовать множество примеров в Интернете, но все, похоже, не помогли. Я бы также подумал об использовании оператора where в фактическом запросе, чтобы ограничить поиск записей jsonb, например, включая WHERE name IN ('harry', 'moe')
, но пока просто нужно посмотреть, как решается эта проблема обновления basi c.