在PostgreSQL中,从JSONB数组中选择对象的最佳方法是什么?

时间:2016-02-01 14:06:54

标签: sql database postgresql postgresql-9.4 jsonb

现在,我有一个数组,我可以从桌子上选择。

[{"_id": 1, "count: 3},{"_id": 2, "count: 14},{"_id": 3, "count: 5}]

由此,我只需要特定_id的计数。例如,我需要计数

_id: 3

我已阅读文档,但我无法找出获取对象的正确方法。

1 个答案:

答案 0 :(得分:1)

WITH test_array(data) AS ( VALUES
  ('[
     {"_id": 1, "count": 3},
     {"_id": 2, "count": 14},
     {"_id": 3, "count": 5}
     ]'::JSONB)
)
SELECT val->>'count' AS result
FROM
  test_array ta,
  jsonb_array_elements(ta.data) val
WHERE val @> '{"_id":3}'::JSONB;

结果:

 result 
--------
 5
(1 row)