如何从 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[];
我有一个 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[];