0Pricing
JavaScript Academy · Ders

Dizinler ve Sorgular

Dizinlerle verileri verimli şekilde sorgulayın.

Dizinler ve Sorgular, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 4 dersten oluşur.

Dizinler Neden Gerekli?

Varsayılan olarak kayıtlara yalnızca birincil anahtarlarıyla erişebilirsiniz. Bir dizin, belirli bir soyadı taşıyan tüm kullanıcıları bulmak gibi işlemleri başka bir özelliğe göre verimli bir şekilde sorgulamanızı sağlar.

Dizin Oluşturma

Dizinleri onupgradeneeded içinde, depoyu oluşturduktan hemen sonra store.createIndex(name, keyPath, options) ile oluşturun.

request.onupgradeneeded = (e) => {
  const db = e.target.result;
  const store = db.createObjectStore('users', { keyPath: 'id' });
  store.createIndex('byEmail', 'email', { unique: true });
};

Benzersiz ve Benzersiz Olmayan Dizinler

unique seçeneği, iki kaydın aynı dizin değerini paylaşmamasını zorunlu kılar. Birçok kaydın şehir gibi aynı değeri paylaşabildiği durumlarda unique: false (varsayılan) kullanın.

store.createIndex('byCity', 'city', { unique: false });
store.createIndex('byEmail', 'email', { unique: true });

Dizin Üzerinden Sorgulama

Bir işlem içindeki depodan dizini alın, ardından dizinlenmiş özelliğin değerini kullanarak üzerinde get veya getAll çağrısını yapın.

const tx = db.transaction('users', 'readonly');
const index = tx.objectStore('users').index('byEmail');
const req = index.get('ada@example.com');
req.onsuccess = () => console.log(req.result);

getAll

getAll(), eşleşen her kaydı tek bir istekte dizi olarak döndürür; orta büyüklükteki sonuç kümeleri için imleçle yineleme yapmaktan daha basittir.

const index = store.index('byCity');
const req = index.getAll('Paris');
req.onsuccess = () => {
  console.log('found', req.result.length, 'users in Paris');
};

Anahtar Aralıkları

Bir IDBKeyRange, aralık sorguları için bir anahtar aralığını tanımlar. Yardımcılar arasında only, lowerBound, upperBound ve bound bulunur.

const range = IDBKeyRange.bound(18, 65); // ages 18..65
const index = store.index('byAge');
index.getAll(range);

Sınır Seçenekleri

IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen), uç noktaları dışarıda bırakabilir. Açık sınırlar uç noktaları içermez.

// 18 inclusive, 65 exclusive:
const range = IDBKeyRange.bound(18, 65, false, true);
// lowerBound(10) => keys >= 10
// upperBound(10, true) => keys < 10

İmleçler

Büyük sonuç kümeleri veya özel yineleme için index.openCursor(range) ile bir imleç açın. İmleç, her şeyi belleğe yüklememeniz için eşleşen kayıtları tek tek ziyaret eder.

const req = store.index('byCity').openCursor();
req.onsuccess = (e) => {
  const cursor = e.target.result;
  if (cursor) {
    console.log(cursor.value);
    cursor.continue(); // move to next match
  }
};

Eşleşmeleri Sayma

index.count(range), kayıtları almadan kaç tanesinin eşleştiğini döndürür; bu işlem hızlıdır ve az bellek kullanır.

const req = store.index('byCity').count('Paris');
req.onsuccess = () => console.log('count:', req.result);

Yalnızca Anahtarları Alma

getAllKeys ve bir anahtar imleci, eşleşen kayıtların yalnızca birincil anahtarlarını döndürür. Bu, nesnelerin tamamına değil yalnızca başvurularına ihtiyaç duyduğunuzda kullanışlıdır.

const req = store.index('byCity').getAllKeys('Paris');
req.onsuccess = () => console.log('keys:', req.result);

Sorgulamaya Genel Bakış

Dizinler, IndexedDB'yi sorgulanabilir bir depoya dönüştürür: Dizinleri onupgradeneeded içinde oluşturun, ardından tam olarak ihtiyaç duyduğunuz kayıtları almak için get, getAll, anahtar aralıklarını ve imleçleri kullanın.

Hızlı Kontrol

Dizinler ve sorgular hakkındaki anlayışınızı sınayın.

Tekrar

Dizinleri ve sorguları öğrendiniz:

  • onupgradeneeded içinde createIndex ile dizinler oluşturun.
  • unique seçeneği, değerlerin birbirinden farklı olmasını zorunlu kılar.
  • index.get / getAll ile sorgulayın.
  • IDBKeyRange, aralık sorgularını mümkün kılar.
  • İmleçler büyük kümelerde yineleme yapar; count eşleşmeleri sayar.

Sırada sürüm yönetimi ve yükseltmeler var.

Sıkça Sorulan Sorular

“Dizinler ve Sorgular” dersi ücretsiz mi?

Evet — “Dizinler ve Sorgular” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 4 dersten oluşur.

“Dizinler ve Sorgular” dersinde ne öğreneceğim?

Dizinlerle verileri verimli şekilde sorgulayın. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Dizinler ve Sorgular” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Veritabanı Açma
  2. İşlemler ve CRUD
  3. Dizinler ve Sorgular
  4. Sürümleme ve Yükseltmeler
← JavaScript Academy Sayfasına Dön