మాడ్యూల్ పాఠాలు (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_build_object\`తో మ్యాప్ చేయబడిన డేటాను JSON అడ్డు వరుసలుగా తిరిగి ఇవ్వండి. మ్యాప్ రెండు కీలు: 'name' 'first_name'కి కట్టుబడి, మరియు 'mail' 'email'కి కట్టుబడి ఉంటుంది. నిలువు వరుస కోసం \`AS customer_doc\`ని ఉపయోగించండి.
సూచనను చూపించు
json_build_object('పేరు', మొదటి_పేరు, 'మెయిల్', ఇమెయిల్)
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది
ప్రతి ఆర్డర్ (\`order_id\`) కోసం, ఇది కలిగి ఉన్న అన్ని \`product_id\`లను ఒకే యూనిట్లో నిర్మించండి. 'order_items' పట్టిక నుండి, \`GROUP BY order_id\`ని అమలు చేయండి. ఆపై \`order_id\`ని ఎంచుకుని, కేవలం \`product_id\` డేటాను JSON శ్రేణి (JSON_AGG)లో సేకరించండి. శ్రేణికి \`ఉత్పత్తులు\` పేరు పెట్టండి.
సూచనను చూపించు
డేటాను సేకరించడానికి JSON_AGG(product_id) ప్లస్ క్లాసిక్ గ్రూప్.
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది