[Разработка веб-сайтов, PostgreSQL, Программирование, SQL] Упрощенный синтаксис для jsonb в PostgreSQL 14

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
02-Фев-2021 00:31

Как сообщает telegram-канал Cross Join, в репозиторий Postgres упал комит, упрощающий работу с jsonb. Теперь можно обращаться к частям jsonb с помощью квадратных скобок, причем это работает как на чтение, так и на запись.
Прощай jsonb_set  и прочие костыли типа data = data - 'a' || '{"a":5}'
Несколько примеров:
Обновляем значение объекта по ключу. 25 здесь является числом, но взято в кавычки, потому что присваиваемое значение должно быть jsonb
-- (person_data имеет тип jsonb)
UPDATE users
SET person_data['age'] = '25';

Обновление работает и с пустыми (null) jsonb.
Фильтруем таблицу по полю name=Pasha. Pasha — строка, но тоже записана в форме jsonb: '"Pasha"', поэтому лишние двойные кавычки
SELECT *
FROM users
WHERE person_data['name'] = '"Pasha"';

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

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

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

Ну и самое главное: изменения войдут в postgreSQL 14!
Оригинальная идея синтаксиса принадлежит Олегу Бартунову, реализация — Дмитрий Долгов
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_razrabotka_vebsajtov (Разработка веб-сайтов), #_postgresql, #_programmirovanie (Программирование), #_sql, #_postgresql, #_jsonb, #_razrabotka_vebsajtov (
Разработка веб-сайтов
)
, #_postgresql, #_programmirovanie (
Программирование
)
, #_sql
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 20-Май 21:01
Часовой пояс: UTC + 5