Sintaxis simplificada para jsonb en PostgreSQL 14

Según el canal de telegramas Cross the Join , el repositorio Postgres cayó Komichi , más fácil de trabajar con jsonb. Ahora puede acceder a partes de jsonb usando corchetes, y esto funciona tanto para lectura como para escritura.







Adiós jsonb_set y otras muletas como data = data - 'a' || '{"a":5}'









Algunos ejemplos:



Actualizamos el valor del objeto por clave. 25 es un número aquí, pero entre comillas porque el valor asignado debe ser jsonb







-- (person_data   jsonb)
UPDATE users 
SET person_data['age'] = '25'; 
      
      





La actualización también funciona con jsonb vacío (nulo).







Filtramos la tabla por el campo name = Pasha. Pasha es una cadena, pero también está escrito en forma jsonb: '"Pasha"', así que comillas dobles adicionales







SELECT * 
FROM users 
WHERE person_data['name'] = '"Pasha"';
      
      





Obtenga el valor del objeto por la clave "edad"







SELECT ('{"age": 25}'::jsonb)['age'];
      
      





O puede especificar una ruta larga







SELECT ('{"a": {"b": {"c": 1}}}'::jsonb)['a']['b']['c'];
      
      





Elemento de matriz por índice







SELECT ('[1, "2", null]'::jsonb)[1];
      
      





¡Lo más importante es que los cambios se incluirán en postgreSQL 14!







La idea original de la sintaxis pertenece a Oleg Bartunov, implementación - Dmitry Dolgov








All Articles