2017-02-16 9 views
0

У меня есть jsonb столбец feeds с данными в виде настоя:Сведение вложенную JSON [б] массив в Postgres

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

Как запросить первыйmedia ->> id, так как это в массив JSON? Так что результат таков:

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

Я попытался jsonb_array_elements, но не могу показаться, чтобы получить выход, я хочу, особенно ту часть, где media вложен в другой массив.

ответ

0

Фигурные его

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