У меня есть таблица Postgres с двумя столбцами «узлы» и «отметка времени». Столбец «узлы» имеет тип jsonb и представляет собой массив объектов следующего формата:
[
{
"addr": {},
"node_number": "1",
"primary": false
},
{
"addr": {},
"node_number": "2",
"primary": true
},
]
Я хочу найти объект в этом массиве, который имеет "primary":true
в самой последней строке. Если выше был последний ряд, результат должен быть:
{
"addr": { },
"node_number": "2",
"primary": true
}
Я пробовал:
SELECT(nodes -> 0) FROM table WHERE nodes @> '[{"primary": true}]'
order by timestamp desc
limit 1;
, который дает объект с индексом 0 в массиве, а не нужный объект, имеющий "primary": true
.
Как я могу реализовать запрос?