在 Postgres 中展平嵌套的 json[b] 数组

Flattening a nested json[b] array in Postgres

我有 jsonbfeeds,数据格式如下:

[{
  "id": 99999999,
  "lang": "pt",
  "entities": {
    "urls": [],
    "media": [{
      "id": 123456456,
      "type": "photo",
      "id_str": "123456456",
      "indices": [37, 59],
    }]
  },
  "favorited": false,
  "retweeted": false,
  "truncated": false
}]

如何查询 first media ->> id 因为它在 json 数组中?所以结果是这样的:

   id             media_id
---------------------------
99999999         123456456

我尝试了 jsonb_array_elements 但似乎无法获得我想要的输出,尤其是 media 嵌套在另一个数组中的部分。

想通了

SELECT
  jsonb_array_elements(feeds)->>'id',
  (((jsonb_array_elements(feeds)->'entities')->'media')->0)->>'id' as media
FROM mytable
select feeds::jsonb->0->>'entities'->>'media'->0->>'id' from table;