Как удалить массив ключей из объекта jsonb Postgres? - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть 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 объекта?

1 Ответ

2 голосов
/ 12 апреля 2019

Используйте оператор - с массивом text справа:

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