我有一个包含 2 列“节点”和“时间戳”的 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
.
如何实现查询?