繁体   English   中英

使用Postgres JSONB查询在数组中查询数组

[英]Querying an array within an array with Postgres JSONB query

我在Postgres 9.4 db的字段中有一些JSON,我想查找给定名称为特定值的行,其中该字段名为model ,JSON结构如下:

{
    "resourceType": "Person",
    "id": "8a7b72b1-49ec-43e5-bd21-bc62674d9875",
    "name": [
      {
        "family": [
          "NEWMAN"
        ],
        "given": [
          "JOHN"
        ]
      }
    ]
}

所以我尝试了这个: SELECT * FROM current WHERE model->'name' @> '{"given":["JOHN"]}'; (以及其他各种猜测),但与上述数据不匹配。 我应该怎么做?

使用函数jsonb_array_elements()

select t.*
from current t,
jsonb_array_elements(model->'name') names
where names->'given' ? 'JOHN'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM