postgresqljson路径表达式

0tdrvxhp  于 2021-08-01  发布在  Java
关注(0)|答案(1)|浏览(470)

我需要一个jsonpath表达式,它返回数组中具有“key”属性的第一个元素。
我正在查找与此查询相同的结果:

SELECT
  j
FROM
jsonb_array_elements(
    '[
      {"key": "foo"},
      {"other": "bar"},
      {"key":  "baz", "other": "blah"}
    ]'::JSONB
) j
WHERE
  j ? 'key'
LIMIT 1

我的查询当前看起来像这样,但不起作用

SELECT
    jsonb_path_query(
      '[
        {"key": "foo"},
        {"other": "bar"},
        {"key":  "baz", "other": "blah"}
      ]'::JSONB,
      '$[?(@.key)] [0]')
qlckcl4x

qlckcl4x1#

请看这个:https://www.postgresql.org/docs/12/functions-json.html#functions-sqljson路径运算符

SELECT
    jsonb_path_query_first(
      '[
        {"key": "foo"},
        {"other": "bar"},
        {"key":  "baz", "other": "blah"}
      ]'::JSONB,
      '$[*] ? (exists (@.key))')
;

 jsonb_path_query_first 
------------------------
 {"key": "foo"}
(1 row)

相关问题