دروس الوحدة (2/2)
وظائف تجميع JSON
وظائف تجميع JSON
التكامل هو ثنائي الاتجاه. ليس من الضروري أن تقتصر قاعدة البيانات على تحليل JSON: بل يمكنها بنائها. تخيل لو أن واجهة برمجة التطبيقات (API) وNode.js الخاصة بك لم تكن مضطرة إلى القيام بالعمل القذر والمكثف المتمثل في تسلسل الكائنات المتداخلة إلى JSON، لأن قاعدة البيانات سلمتها بالفعل مبنية مباشرة من القرص.
بناء الكائنات والمصفوفات
بدلاً من التجميع الجماعي الكلاسيكي أو تسلسل السلسلة (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\`. قم بتعيين مفتاحين: "الاسم" المرتبط بـ "الاسم_الأول"، و"البريد" المرتبط بـ "البريد الإلكتروني". استخدم \`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 من المحاولات