PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie bekomme ich nur das Jsonb bestimmter Schlüssel von Postgres?

So können Sie ziemlich einfach auf einen einzelnen Schlüssel herunterfiltern:

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

...oder Sie können nach mehreren Schlüsseln filtern:

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

Oder bei einer komplexeren Bedingung, wenn Sie möchten:

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

Diese Art von Fragen können sehr einfach beantwortet werden, indem Sie einfach die Dokumentation .