Saya ingin menulis kueri terhadap jsonb
tipe Postgres yang memberikan array ID pelanggan akan menemukan grup yang sesuai.
Diberikan tabel contoh ini:
CREATE TABLE grp(d JSONB NOT NULL);
INSERT INTO grp VALUES
('{"name":"First","arr":["foo"], "customers":[{"id":"1", "name":"one"},{"id":"2", "name":"two"}]}')
, ('{"name":"Second","arr":["foo","bar"], "customers":[{"id":"3", "name":"three"},{"id":"4", "name":"four"}]}')
, ('{"name":"Third","arr":["bar","baz"], "customers":[{"id":"5", "name":"five"},{"id":"6", "name":"seven"}]}');
Saya menemukan pertanyaan serupa ( PostgreSql JSONB SELECT terhadap beberapa nilai ) dan berhasil mencapai apa yang saya inginkan pada array sederhana menggunakan kueri ini:
SELECT d FROM grp WHERE d->'arr' ?| ARRAY['foo', 'bar'];
Namun, saya tidak bisa membuatnya berfungsi ketika ketika array berisi objek JSON :
SELECT d FROM grp WHERE d->'customers' ?| ARRAY['{"id":"1"}', '{"id":"5"}'];
Inilah yang saya harapkan dari permintaan saya:
grp "Pertama" -> pelanggan "1"
grp "Ketiga" -> pelanggan "5"