我的表doc中有一个jsonb列(gppermission),其中包含数据
[{"Deny": "true", "Allow": "false", "GroupName": "Group 1 "},
{"Deny": "false", "Allow": "true", "GroupName": "Group 2 "},
{"Deny": "false", "Allow": "true", "GroupName": "Group 3 "},
{"Deny": "true", "Allow": "false", "GroupName": "Group 4 "}]
我需要在此数据中搜索
{"Deny": "false", "Allow": "true", "GroupName": "Group 3 "}
我尝试了以下查询。但没有结果:(
select * from doc as dc ,jsonb_array_elements(dc.gppermission) as e(gp) where e.gp = '{"Deny":"false","Allow":"true","GroupName":"Group 3"}'
看到Query for array elements inside JSON type,但它有一个'对象'参考,我的json数组是不同的
请帮忙......
答案 0 :(得分:0)
我得到了一个解决方案,这可能不是解决这个问题的唯一方法。
select * from doc as dc ,jsonb_array_elements(dc.gppermission) as e(gp) where e.gp ->>'Deny'='false' and e.gp ->>'Allow'='true' and e.gp ->>'GroupName'='Group 1'