Selon le canal de télégramme Cross the Join , le référentiel Postgres est tombé à Komichi , plus facile à travailler avec jsonb. Vous pouvez maintenant accéder à des parties de jsonb en utilisant des crochets, et cela fonctionne à la fois pour la lecture et l'écriture.
Au revoir jsonb_set et autres béquilles comme data = data - 'a' || '{"a":5}'
Quelques exemples:
Nous mettons à jour la valeur de l'objet par clé. 25 est un nombre ici, mais entre guillemets car la valeur assignée doit être jsonb
-- (person_data jsonb)
UPDATE users
SET person_data['age'] = '25';
La mise à jour fonctionne également avec jsonb vide (nul).
Nous filtrons la table par le champ name = Pasha. Pasha est une chaîne, mais également écrite sous la forme jsonb: '"Pasha"', donc des guillemets doubles supplémentaires
SELECT *
FROM users
WHERE person_data['name'] = '"Pasha"';
Obtenez la valeur de l'objet par la clé "age"
SELECT ('{"age": 25}'::jsonb)['age'];
Ou vous pouvez spécifier un long chemin
SELECT ('{"a": {"b": {"c": 1}}}'::jsonb)['a']['b']['c'];
Élément de tableau par index
SELECT ('[1, "2", null]'::jsonb)[1];
Plus important encore, les changements seront inclus dans postgreSQL 14!
L'idée originale de la syntaxe appartient à Oleg Bartunov, mise en œuvre - Dmitry Dolgov