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

How to delete an array of keys from a Postgres jsonb object?

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

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

Returns {"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[];