मुख्य सामग्री पर जाएं
मॉड्यूल 15 · पाठ 2 का 2पाठ्यक्रम में 57/57~15 min
मॉड्यूल पाठ (2/2)

JSON एकत्रीकरण कार्य

JSON एकत्रीकरण कार्य

एकीकरण द्विदिशात्मक है. डेटाबेस को खुद को JSON को पार्स करने तक सीमित रखने की ज़रूरत नहीं है: यह इसे बना सकता है। कल्पना करें कि क्या आपके एपीआई और नोड.जेएस को नेस्टेड ऑब्जेक्ट्स को जेएसओएन में क्रमबद्ध करने का गंदा, गहन काम नहीं करना पड़ता, क्योंकि डीबी ने उन्हें पहले से ही सीधे डिस्क से निर्मित किया था।

वस्तुओं और सारणियों का निर्माण

क्लासिक द्रव्यमान एकत्रीकरण या स्ट्रिंग संयोजन (String_agg) के बजाय, हम इन कार्यों की ओर रुख करते हैं:

  • json_build_object(key, value, ...) या jsonb_build_object(...)
  • json_agg(...) या jsonb_agg(...)
SQL
SELECT json_build_object('name', first_name, 'city', city) AS data
FROM customers;

आप { "name": "...", "city": "..." } वाली मुद्रित पंक्तियाँ देखेंगे, जो पूरी तरह से अनुरूप हैं।

व्यायाम#sql.m15.l2.e1
प्रयास: 0लोड हो रहा है...

'ग्राहक' तालिका से, डेटा को JSON पंक्तियों के रूप में लौटाएं, जिसे \`json_build_object\` के साथ मैप किया गया है। दो कुंजियाँ मैप करें: 'नाम' 'first_name' से जुड़ा है, और 'मेल' 'ईमेल' से जुड़ा है। कॉलम के लिए \`AS customer_doc\` का उपयोग करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

json_build_object('नाम', प्रथम_नाम, 'मेल', ईमेल)

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम#sql.m15.l2.e2
प्रयास: 0लोड हो रहा है...

प्रत्येक ऑर्डर (\`order_id\`) के लिए, इसमें शामिल सभी \`product_id\` को एक इकाई में बनाएँ। 'order_items' तालिका से, \`GROUP BY order_id\` चलाएँ। फिर \`order_id\` चुनें और केवल \`product_id\` डेटा को JSON सरणी (JSON_AGG) में जमा करें। सरणी को \`उत्पाद\` नाम दें.

संपादक लोड हो रहा है...
संकेत दिखाएँ

डेटा इकट्ठा करने के लिए JSON_AGG(product_id) प्लस एक क्लासिक समूह।

3 प्रयासों के बाद समाधान उपलब्ध है