PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come ottenere solo il jsonb di chiavi specifiche da postgres?

Puoi filtrare fino a una singola chiave abbastanza facilmente in questo modo:

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

...oppure puoi filtrare fino a più chiavi:

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

O a condizioni più complesse, se vuoi:

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

È possibile rispondere a questo tipo di domande molto facilmente semplicemente leggendo la documentazione .