Ana içeriğe geç
Modül 15 · Ders 2 ders 2Kurstaki 57/57~15 min
Modül dersleri (2/2)

JSON toplama işlevleri

JSON Toplama İşlevleri

Entegrasyon çift yönlüdür. Veritabanının kendisini JSON'u ayrıştırmakla sınırlaması gerekmez: onu oluşturabilir. API'nizin ve Node.js'nizin, iç içe geçmiş nesneleri JSON'a serileştirme gibi kirli, yoğun işleri yapmak zorunda olmadığını, çünkü DB'nin bunları doğrudan diskten oluşturulmuş olarak teslim ettiğini hayal edin.

Nesneler ve Diziler Oluşturma

Klasik toplu toplama veya dize birleştirme (String_agg) yerine şu işlevlere yöneliyoruz:

  • json_build_object(key, value, ...) veya jsonb_build_object(...)
  • json_agg(...) veya jsonb_agg(...)
SQL
SELECT json_build_object('name', first_name, 'city', city) AS data
FROM customers;

Tamamen uyumlu { "name": "...", "city": "..." } içeren yazdırılmış satırları göreceksiniz.

Egzersiz#sql.m15.l2.e1
Denemeler: 0Yükleniyor…

'Müşteriler' tablosundan, verileri \`json_build_object\` ile eşlenmiş JSON satırları olarak döndürün. İki anahtarı eşleyin: 'isim', 'ad_adı'na ve 'posta', 'e-posta'ya bağlı. Sütun için \`AS customer_doc\` kullanın.

Düzenleyici yükleniyor…
İpucu göster

json_build_object('ad', ad_ad, 'posta', e-posta)

3 denemeden sonra çözüm mevcut

Egzersiz#sql.m15.l2.e2
Denemeler: 0Yükleniyor…

Her sipariş için (\`order_id\`), içerdiği tüm \`product_id\`leri tek bir birimde oluşturun. 'order_items' tablosundan \`GROUP BY order_id\` komutunu çalıştırın. Daha sonra \`order_id\` seçeneğini seçin ve yalnızca \`product_id\` verilerini bir JSON dizisinde (JSON_AGG) biriktirin. Diziyi \`ürünler\` olarak adlandırın.

Düzenleyici yükleniyor…
İpucu göster

JSON_AGG(product_id) artı verileri toplamak için klasik bir grup by.

3 denemeden sonra çözüm mevcut