sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo obtener solo el jsonb de claves específicas de postgres?

Puede filtrar hasta una sola tecla con bastante facilidad así:

jsonb_object(ARRAY[key, jsonb_data -> key])

...o puede filtrar hasta varias claves:

(SELECT jsonb_object_agg(key, value) FROM jsonb_each(jsonb_data) WHERE key IN ('a', 'b'))

O en una condición más compleja, si lo desea:

(
  SELECT jsonb_object_agg(key, value)
  FROM jsonb_each(jsonb_data)
  WHERE
    key NOT LIKE '__%'
    AND jsonb_typeof(value) != 'null'
)

Este tipo de preguntas se pueden responder muy fácilmente simplemente leyendo la documentación .