Sequelize Postgres查询JSONB ARRAY

时间:2018-03-26 05:34:56

标签: postgresql sequelize.js

让表Profile的{​​{1}}列recordsARRAYJSONB列的形状如下:

records

我期待找到的是给定[ { itemId: 1 value: true insertOn: "2018-03-26T03:49:55.121Z" }, { itemId: 1 value: false insertOn: "2018-03-27T03:49:55.121Z" } ... ] 的最新价值。例如,itemId 1的最新值为itemId

如何实施查询?我试过false,但不知道如何继续。

1 个答案:

答案 0 :(得分:0)

您可以使用jsonb_array_elements将JSON列扩展为行集。然后,您可以使用->>访问其元素:

select  ele->>'value'
from    YourTable
cross join lateral
       jsonb_array_elements(col1) arr(ele)
where  ele->>'itemId' = '1'
order by
       ele->>'insertOn' desc
limit  1

Working example at SQL Fiddle.