首页 > 解决方案 > 如何通过postgres中的键数组从jsonb subJesonb中获取

问题描述

我有 jsonb 字段和数组键如何获取子 jsonb

字段 ={"f1":1, "f2":null, "f3":"fff", "f4":"4"}

克=["f1", f3]

我们需要得到:{"f1":1, "f3":"fff"}

标签: postgresqljsonb

解决方案


您可以将两者都取消嵌套,加入结果并聚合回来:

就像是:

select jsonb_object_agg(i.k, i.v)
from jsonb_each('{"f1":1, "f2":null, "f3":"fff", "f4":"4"}'::jsonb) as i(k,v)
  join jsonb_array_elements_text('["f1", "f3"]') t(k) on t.k = i.k

推荐阅读