Lektionen des Moduls (2/2)
JSON-Aggregationsfunktionen
JSON-Aggregationsfunktionen
Die Integration erfolgt bidirektional. Die Datenbank muss sich nicht auf das Parsen von JSON beschränken: Sie kann es erstellen. Stellen Sie sich vor, Ihre API und Node.js müssten nicht die schmutzige, intensive Arbeit der Serialisierung verschachtelter Objekte in JSON erledigen, da die DB sie bereits erstellt direkt von der Festplatte liefert.
Objekte und Arrays erstellen
Anstelle der klassischen Massenaggregation oder String-Verkettung (String_agg) greifen wir auf diese Funktionen zurück:
json_build_object(key, value, ...)oderjsonb_build_object(...)json_agg(...)oderjsonb_agg(...)
SELECT json_build_object('name', first_name, 'city', city) AS data
FROM customers;Es werden Zeilen gedruckt, die { "name": "...", "city": "..." } enthalten und vollkommen konform sind.
Geben Sie aus der Tabelle „Kunden“ die Daten als JSON-Zeilen zurück, zugeordnet mit `json_build_object`. Ordnen Sie zwei Schlüssel zu: „Name“, gebunden an „Vorname“, und „Mail“, gebunden an „E-Mail“. Verwenden Sie `AS customer_doc` für die Spalte.
Hinweis anzeigen
json_build_object('name', first_name, 'mail', email)
Lösung nach 3 Versuchen verfügbar
Erstellen Sie für jede Bestellung (`order_id`) alle darin enthaltenen `product_id`s in einer einzigen Einheit. Führen Sie in der Tabelle „order_items“ `GROUP BY order_id` aus. Wählen Sie dann `order_id` aus und sammeln Sie nur die `product_id`-Daten in einem JSON-Array (JSON_AGG). Benennen Sie das Array `products`.
Hinweis anzeigen
JSON_AGG(product_id) plus eine klassische Gruppierung nach, um die Daten zu sammeln.
Lösung nach 3 Versuchen verfügbar