Bài học theo mô-đun (2/2)
Hàm tổng hợp JSON
Hàm tổng hợp JSON
Sự tích hợp là hai chiều. Cơ sở dữ liệu không phải giới hạn việc phân tích cú pháp JSON: nó có thể xây dựng nó. Hãy tưởng tượng nếu API và Node.js của bạn không phải thực hiện công việc nặng nhọc, phức tạp là tuần tự hóa các đối tượng lồng nhau thành JSON, vì DB đã phân phối chúng đã được tạo ngay từ đĩa.
Xây dựng đối tượng và mảng
Thay vì tập hợp khối lượng cổ điển hoặc nối chuỗi (String_agg), chúng tôi chuyển sang các hàm sau:
json_build_object(key, value, ...)hoặcjsonb_build_object(...)json_agg(...)hoặcjsonb_agg(...)
SELECT json_build_object('name', first_name, 'city', city) AS data
FROM customers;Bạn sẽ thấy các hàng được in có chứa { "name": "...", "city": "..." }, hoàn toàn tuân thủ.
Từ bảng 'khách hàng', trả về dữ liệu dưới dạng hàng JSON, được ánh xạ với \`json_build_object\`. Ánh xạ hai khóa: 'name' được liên kết với 'first_name' và 'mail' được liên kết với 'email'. Sử dụng \`AS customer_doc\` cho cột.
Hiển thị gợi ý
json_build_object('tên', first_name, 'thư', email)
Giải pháp khả dụng sau 3 lần thử
Đối với mỗi đơn hàng (\`order_id\`), hãy xây dựng tất cả \`product_id\` trong một đơn vị duy nhất. Từ bảng 'order_items', hãy chạy \`GROUP BY order_id\`. Sau đó, chọn \`order_id\` và tích lũy thành một mảng JSON (JSON_AGG) chỉ dữ liệu \`product_id\`. Đặt tên cho mảng \`products\`.
Hiển thị gợi ý
JSON_AGG(product_id) cộng với một nhóm cổ điển để thu thập dữ liệu.
Giải pháp khả dụng sau 3 lần thử