Necesito reemplazar los valores de teclas específicas dentro de un jsonb objeto en Postgresql:
create table content (
id int,
dynamic_fields jsonb
);
insert into content values (0, '{
"key1": "aaaaa text1",
"key2": "text1",
"key3": "blabla"}'::jsonb);
UPDATE content
SET dynamic_fields = replace(dynamic_fields::text, 'text1', 'text2')::jsonb;
Este código hasta aquí nos da el siguiente resultado:
id | dynamic_fields
0 | {"key1": "aaaaa text2", "key2": "text2", "key3": "blabla"}
En lugar de reemplazar todas las apariciones de "texto1", me gustaría reemplazar sólo que el texto dentro de el valor de "clave1": ¿cómo lo hago?
El resultado de la actualización debería ser algo como:
id | dynamic_fields
0 | {"key1": "aaaaa text1", "key2": "text2", "key3": "blabla"}
ACTUALIZADO el resultado deseado, no fue lo suficientemente clara.