PostgreSQL json路径表达式以查找具有特定键的第一个数组元素

nextstopsun

我需要一个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]')
迈克·欧根尼克

请查看以下内容:https : //www.postgresql.org/docs/12/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 PostgreSql 中查找包含字符串的第一个数组值

正则表达式随后捕获字符之前的第一个单词-Postgresql

将一列的所有元素放入同一个数组(postgresql)

postgresql split_part-如何在第一个分割键后进行分割

在Postgresql中为每个拒绝或接受的日期查找第一个OPENED_DATE

PostgreSQL 中的第一个事务

从 postgresql 中的语句中提取第一个元素

PostgreSQL:基于一个数组(外键)列联接两个表

正则表达式,用于选择路径的第一个元素

使用 PostgreSQL xpath 函数并从数组中获取第一个返回值

使用正则表达式提取postgresql中的最后一个单词

PostgreSQL条件表达式

数值表达式有 x 个元素:仅第一个使用

在PostgreSQL中选择一个数组列的总和

如果第一个数字没有出现在末尾,则正则表达式匹配第一个数字

查找具有特定一级后代的第一个父元素

已解决的Java:通过lambda表达式查找第一个数字最不同的数字

PostgreSQL - 选择具有给定元素数组的 JSON 行

PostgreSQL中window函数的第一个和最后一个值

Postgresql 查询每个范围的第一个和最后一个

从PostgreSQL中的jsonb数组中获取一个元素

PostgreSQL 获取按名称分组的结果,但按每个组的第一个元素的 modified_date desc 排序

jQuery查找具有特定类前缀的第一个父元素

查找最后一组正则表达式的第一个元素的索引?

如何查找只有一个值的列 - Postgresql

postgresql将数组聚合为具有所有元素的并集的单个数组

PostgreSQL:正则表达式用花括号替换第一级方括号

如何使用 PostgreSQL 在列的每一行中创建具有项目长度的算术表达式

PostgreSQL:计算特定的 JSON 元素