SQL JSON: основные функции

Функции для работы с JSON

1. Извлечение значений из JSON

Оператор ->> возвращает значение по ключу как текст:

SELECT name, preferences->>'theme' AS theme
FROM users;
name theme
Alexander dark
Vladislav light

2. Поиск по JSON

Оператор @> проверяет, содержит ли JSON другой JSON:

SELECT * FROM users
WHERE preferences @> '{"theme": "dark"}';
id name preferences
7 Alexander {"theme": "dark", "notifications": true}

3. Обновление JSON

Функция jsonb_set обновляет значение в JSON:

UPDATE users
SET preferences = jsonb_set(preferences, '{theme}', '"blue"')
WHERE id = 7;

4. Разворачивание JSON-массива

Функция jsonb_array_elements разворачивает JSON-массив в набор строк:

SELECT id, jsonb_array_elements(preferences->'items') AS item
FROM users;

5. Объединение JSON

Функция jsonb_concat объединяет два JSON-объекта:

SELECT jsonb_concat(preferences, '{"new_key": "new_value"}') AS new_preferences
FROM users;