-- массив JSONB с объектами select '[{"id":1, "q":true}, {"id":2, "q":false}, {"id":3, "q":true}, {"id":4, "q":false}]'::jsonb; -- нужно оставить в массиве объекты где у ключа "q" значение "true" select jsonb_path_query_array('[{"id":1, "q":true}, {"id":2, "q":false}, {"id":3, "q":true}, {"id":4, "q":false}]'::jsonb, '$[*] ? (@.q == true)');
Используем функцию «jsonb_path_query_array()«, которая умеет отбирать нужные объекты JSONB-массива по заданному нами условию.