ماڈیول اسباق (2/2)
JSON جمع کرنے کے افعال
JSON جمع کرنے کے افعال
انضمام دو طرفہ ہے۔ ڈیٹا بیس کو JSON کو پارس کرنے تک خود کو محدود کرنے کی ضرورت نہیں ہے: یہ اسے بنا سکتا ہے۔ تصور کریں کہ کیا آپ کے API اور Node.js کو JSON میں نیسٹڈ آبجیکٹ کو سیریلائز کرنے کا گندا، گہرا کام نہیں کرنا پڑتا تھا، کیونکہ DB نے انہیں پہلے سے ہی ڈسک سے سیدھا بنایا تھا۔
بلڈنگ آبجیکٹ اور ارے
کلاسک ماس ایگریگیشن یا سٹرنگ کنکٹنیشن (String_agg) کے بجائے، ہم ان فنکشنز کی طرف رجوع کرتے ہیں:
json_build_object(key, value, ...)یاjsonb_build_object(...)json_agg(...)یاjsonb_agg(...)
SELECT json_build_object('name', first_name, 'city', city) AS data
FROM customers;آپ کو پرنٹ شدہ قطاریں نظر آئیں گی جن میں { "name": "...", "city": "..." }، بالکل مطابق ہے۔
'کسٹمرز' ٹیبل سے، ڈیٹا کو JSON قطاروں کے طور پر واپس کریں، جو \`json_build_object\` کے ساتھ میپ کیا گیا ہے۔ دو کلیدوں کا نقشہ بنائیں: 'نام' 'first_name' کا پابند، اور 'mail' 'email' کے ساتھ پابند۔ کالم کے لیے \`AS customer_doc\` استعمال کریں۔
اشارہ دکھائیں۔
json_build_object('نام'، پہلا_نام، 'میل'، ای میل)
3 کوششوں کے بعد حل دستیاب ہے۔
ہر آرڈر (\`order_id\`) کے لیے، تمام \`product_id\`s کو ایک اکائی میں بنائیں جو اس میں شامل ہیں۔ 'order_items' ٹیبل سے، \`GROUP BY order_id\` چلائیں۔ پھر \`order_id\` کو منتخب کریں اور صرف \`product_id\` ڈیٹا کو JSON صف (JSON_AGG) میں جمع کریں۔ سرنی \`مصنوعات\` کو نام دیں۔
اشارہ دکھائیں۔
ڈیٹا اکٹھا کرنے کے لیے JSON_AGG(product_id) کے علاوہ ایک کلاسک گروپ۔
3 کوششوں کے بعد حل دستیاب ہے۔