मैं jsonb
पोस्टग्रेज में टाइप के विरूद्ध एक प्रश्न लिखना चाहता हूं, जिसे देखते हुए ग्राहकों के एक समूह को संबंधित समूह मिलेंगे।
इस उदाहरण तालिका को देखते हुए:
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"}]}');
मुझे इसी तरह का प्रश्न मिला ( PostgreSql JSONB कई मूल्यों के खिलाफ चयन ) और इस क्वेरी का उपयोग करके सरल सरणी पर जो मैं चाहता हूं उसे प्राप्त करने में कामयाब रहा:
SELECT d FROM grp WHERE d->'arr' ?| ARRAY['foo', 'bar'];
हालाँकि, जब JSON ऑब्जेक्ट में सरणी होती है, तो मैं इसे काम नहीं कर सकता :
SELECT d FROM grp WHERE d->'customers' ?| ARRAY['{"id":"1"}', '{"id":"5"}'];
यहाँ मैं अपनी क्वेरी से उम्मीद करता हूँ:
जीआरपी "प्रथम" -> ग्राहक "1"
जीआरपी "तीसरा" -> ग्राहक "5"