Cross Join - канал о разработке
3.69K subscribers
92 photos
8 videos
3 files
287 links
Канал о разработке Антона Околелова. Разрабочик/ex-тимлид Go, живу в Чехии. Мысли, новости, вопросы.

По вопросам рекламы @antonokolelov
Download Telegram
В репозиторий Postgres упал комит, упрощающий работу с jsonb. Теперь можно обращаться к частям jsonb с помощью квадратных скобок, причем это работает и на чтение, и на запись.

Прощай jsonb_set  и прочие костыли типа data = data - 'a' || '{"a":5}'
Несколько примеров:



-- Получаем значение объекта по ключу "a"
SELECT ('{"a": 1}'::jsonb)['a'];

-- Или можно указать длинный путь
SELECT ('{"a": {"b": {"c": 1}}}'::jsonb)['a']['b']['c'];

-- Элемент массива по индексу
SELECT ('[1, "2", null]'::jsonb)[1];

-- Обновляем значение объекта по ключу. Единица взята в кавычки, потому что присваиваемое значение должно быть тоже jsonb
UPDATE table_name SET jsonb_field['key'] = '1';

-- Фильтруем таблицу по полю key=value. Value тоже записано в форме jsonb: '"value"'
SELECT * FROM table_name WHERE jsonb_field['key'] = '"value"';


Изменения войдут в postgreSQL14!

#postgresql
👀2