PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment obtenir uniquement le jsonb de clés spécifiques à partir de postgres?

Vous pouvez filtrer jusqu'à une seule clé assez facilement comme ceci :

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

...ou vous pouvez filtrer jusqu'à plusieurs clés :

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

Ou sur une condition plus complexe, si vous voulez :

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

On peut répondre très facilement à ce genre de questions en lisant simplement la documentation .