שיעורי מודול (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('name', first_name, 'mail', email)
הפתרון זמין לאחר 3 ניסיונות
עבור כל הזמנה (\`order_id\`), בנה ביחידה אחת את כל \`product_id\`s שהיא כוללת. מהטבלה 'order_items', הפעל את \`GROUP BY order_id\`. לאחר מכן בחר ב\`order_id\` וצבור למערך JSON (JSON_AGG) רק את הנתונים של \`product_id\`. תן שם למערך \`מוצרים\`.
הצג רמז
JSON_AGG(product_id) בתוספת קבוצה קלאסית על ידי כדי לאסוף את הנתונים.
הפתרון זמין לאחר 3 ניסיונות