Operator Jalur: -> ->> @>
Telusuri dokumen JSONB dengan ->, ->>, #>>, periksa containment dengan @> dan keluarga jsonb_path_query
Operator Jalur: -> ->> @> adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.
Tiga Keluarga Operator
Operator jalur JSONB hadir dalam tiga bentuk:
->dan->>— mengekstrak berdasarkan kunci atau indeks#>dan#>>— mengekstrak berdasarkan jalur@>dan?— menguji pencakupan / keberadaan kunci
-> Mengembalikan JSONB
Ekstrak sebuah nilai dan pertahankan sebagai JSONB:
SELECT data->'user_id' FROM events;
-- returns JSONB like 42
SELECT data->0 FROM events;
-- first element of a JSONB array->> Mengembalikan Teks
Ekstrak sebuah nilai sebagai TEXT — berguna untuk konversi tipe:
SELECT data->>'user_id' FROM events;
-- '42' (TEXT)
SELECT (data->>'user_id')::BIGINT FROM events;
-- 42 (BIGINT)Ekstraksi Jalur #> (JSONB)
Telusuri beberapa tingkat menggunakan larik kunci:
SELECT data #> '{user, address, city}' FROM events;
-- nested JSONB valueEkstraksi Jalur #>> (TEXT)
Sama seperti #>, tetapi mengembalikan TEXT:
SELECT data #>> '{user, address, city}' FROM events;
-- 'Berlin'@> Pencakupan
“Apakah dokumen ini mencakup subdokumen tersebut?” — penyaring yang paling berguna:
SELECT * FROM events
WHERE data @> '{"type":"login"}';
-- Works for nested matching too:
WHERE data @> '{"user":{"plan":"pro"}}'? Keberadaan Kunci
Uji apakah sebuah kunci ada pada tingkat teratas:
SELECT * FROM events WHERE data ? 'error';
SELECT * FROM events WHERE data ?| ARRAY['a','b']; -- any of these keys
SELECT * FROM events WHERE data ?& ARRAY['a','b']; -- all of these keysKueri Jalur JSONB (jsonb_path_query)
PostgreSQL modern mendukung ekspresi jalur SQL/JSON:
SELECT jsonb_path_query(data, '$.user.tags[*]') FROM events;
SELECT jsonb_path_exists(data, '$.user.tags[*] ? (@ == "admin")') FROM events;Menggabungkan dengan Indeks
Indeks GIN membuat @> dan ? berjalan cepat:
CREATE INDEX events_data_gin ON events USING GIN (data);
-- supports @>, ?, ?|, ?&
CREATE INDEX events_data_path_gin ON events USING GIN (data jsonb_path_ops);
-- smaller, faster — but only supports @>Mengerkueri Larik di Dalam JSONB
Temukan dokumen yang lariknya berisi sebuah nilai:
SELECT * FROM events
WHERE data->'tags' @> '["admin"]'::JSONB;
-- Or via path query:
SELECT * FROM events
WHERE jsonb_path_exists(data, '$.tags[*] ? (@ == "admin")');Memperbarui JSONB
Gunakan jsonb_set, ||, dan - untuk mengubah data:
UPDATE events
SET data = jsonb_set(data, '{user,plan}', '"pro"')
WHERE id = 1;
UPDATE events SET data = data || '{"new_field":true}'::JSONB;
UPDATE events SET data = data - 'old_field';Mengagregasikan JSONB
Kelompokkan beberapa baris menjadi satu JSONB:
SELECT jsonb_agg(data) FROM events WHERE user_id = 42;
SELECT jsonb_object_agg(name, value) FROM settings;Ringkasan
Operator jalur melakukan segala hal, mulai dari ekstraksi hingga mutasi.
- -> JSONB, ->> TEXT
- #> jalur, #>> jalur TEXT
- @> pencakupan (dapat diindeks dengan GIN)
- jsonb_set / || / - untuk pembaruan
Pemeriksaan Singkat
Apa perbedaan antara data->'k' dan data->>'k'?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Operator Jalur: -> ->> @>” gratis?
Ya — teks lengkap “Operator Jalur: -> ->> @>” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Operator Jalur: -> ->> @>”?
Telusuri dokumen JSONB dengan ->, ->>, #>>, periksa containment dengan @> dan keluarga jsonb_path_query Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai SQL Academy?
Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Operator Jalur: -> ->> @>” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?
Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- JSONB vs JSON: Kapan Menggunakan Masing-Masing
- Operator Jalur: -> ->> @>
- Mengindeks JSONB dengan GIN
- Pemodelan: Kapan JSONB Lebih Unggul daripada Normalisasi