Menggunakan Fungsi json_agg() pada PostgreSQL

Sumber: http://johnatten.com/2015/04/22/use-postgres-json-type-and-aggregate-functions-to-map-relational-data-to-json/

Salah satu kelebihan dari PostgreSQL adalah memiliki tipe data array dan json. Di tutorial yang bersumber dari link di atas, kita akan menggunakan keuntungan ini untuk menyusun object JSON sebelum di return ke client.

Fungsi2 yang akan kita gunakan untuk memudahkan operasi relasi antar tabel adalah:

1. row_to_json()

2. json_agg()

Pertama kali kita akan persiapkan dua tabel yang akan digunakan, yaitu tabel artists dan tabel albums.

row_to_json()

Fungsi row_to_json() akan mengambil seluruh row data dan menjadikannya JSON object di masing-masing row.

Tentu saja kita dapat melakukan filtering, misalnya hanya ingin menampilkan artist yang id = 3.

json_agg()

Kita dapat menggunakan json_agg() untuk melakukan aggregate pada tiap rows menjadi JSON Array. Misalnya kita ingin melakukan query untuk album yang dimiliki oleh artist dengan id = 3.

Hasilnya:

Selanjutnya kita juga bisa menggunakan json_agg untuk menampilkan seluruh artis beserta album yang dimilikinya:

Hasilnya:

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.