Syntaxe simplifiée pour jsonb dans PostgreSQL 14

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








All Articles