如何从 Postgres jsonb 对象中删除密钥数组



我有一个jsonb对象,我想从中删除键。我有一个jsonb数组,其中包含要从对象中删除的键。我看到了删除单个密钥的文档,如下所示:

SELECT '{"foo": true, "bar": false, "baz": true}'::jsonb - 'foo'

返回{"bar": false, "baz": true}

但是我没有看到任何关于一次删除多个键的文档,比如从 Postgres 或 jsonb 数组中删除。我想按照这个伪代码的思路做一些事情:

SELECT '{"foo": true, "bar": false, "baz": true}'::jsonb - '["foo", "bar"]'::jsonb
-- I'd like to return {"baz": true}

如何从 jsonb 对象中删除键数组?

使用右侧带有text数组的-运算符:

SELECT '{"foo": true, "bar": false, "baz": true}'::jsonb
       - '{foo,bar}'::text[];

最新更新