Lekcje modułu (2/2)
Funkcje agregacji JSON
Funkcje agregujące JSON
Integracja jest dwukierunkowa. Baza danych nie musi ograniczać się do analizowania JSON: może ją zbudować. Wyobraź sobie, że Twoje API i Node.js nie musiałyby wykonywać brudnej, intensywnej pracy polegającej na serializacji zagnieżdżonych obiektów do formatu JSON, ponieważ baza danych dostarczyła je już zbudowane prosto z dysku.
Budowanie obiektów i tablic
Zamiast klasycznej agregacji mas lub łączenia ciągów (String_agg), zwracamy się do tych funkcji:
json_build_object(key, value, ...)lubjsonb_build_object(...)- KODEF2 lub KODEF3
SELECT json_build_object('name', first_name, 'city', city) AS data
FROM customers;Zobaczysz wydrukowane wiersze zawierające { "name": "...", "city": "..." }, całkowicie zgodne.
Z tabeli „klienci” zwróć dane jako wiersze JSON odwzorowane za pomocą `json_build_object`. Zamapuj dwa klucze: „imię” powiązane z „imięm” i „mail” powiązane z „e-mailem”. Użyj `AS customer_doc` dla kolumny.
Pokaż wskazówkę
json_build_object('imię', imię, 'poczta', e-mail)
Rozwiązanie dostępne po 3 próbach
Dla każdego zamówienia (`order_id`) zbuduj w jednej jednostce wszystkie zawarte w nim `product_id`. Z tabeli „order_items” uruchom `GROUP BY order_id`. Następnie wybierz `order_id` i zgromadz w tablicy JSON (JSON_AGG) tylko dane `product_id`. Nazwij tablicę `products`.
Pokaż wskazówkę
JSON_AGG(id_produktu) plus klasyczna grupa by zebrać dane.
Rozwiązanie dostępne po 3 próbach