CodeBlanks Logo Icon CodeBlanks

Indeks ve sorgu

JavaScript kursu · İleri seviye · Ders 88/100

Bir object store'a indeks ekleyip range sorgusu yapmayı öğrenirsin.

İndeks oluşturmak

Bir indeks, object store içindeki bir alan üzerinden hızlı arama yapmayı sağlar. store.createIndex(name, keyPath) ile oluşturulur; sonra bu indeks üzerinden get, getAll ya da cursor sorgusu yapabilirsin.

const index = store.createIndex('by_date', 'date');

Burada 'by_date' indeks adı, 'date' ise indekslenen alandır. Böylece date alanına göre kayıt arayabilirsin.

IDBKeyRange ile aralık sorgusu

IDBKeyRange, anahtarların bir aralığını tanımlar ve indeks sorgularında kullanılır. Örneğin IDBKeyRange.only(x) yalnızca x değerini, IDBKeyRange.lowerBound(y) ise y ve üzerini kapsar.

const range = IDBKeyRange.only('2024-01-01');
index.getAll(range);

Böylece belirli bir tarihe ya da sayı aralığına ait tüm kayıtları tek seferde çekebilirsin.

Uygulama Store ve indeks oluştur

request.onupgradeneeded'a bir fonksiyon ata. Fonksiyon içinde event.target.result'i db değişkenine al. db.createObjectStore ile 'notes' store'unu { keyPath: 'id' } ile oluştur ve store değişkenine ata. Sonra store.createIndex ile 'by_date' indeksini 'date' keyPath'i ile oluştur.

Örnek çözümü göster
request.onupgradeneeded = function(event) {
  const db = event.target.result;
  const store = db.createObjectStore('notes', { keyPath: 'id' });
  store.createIndex('by_date', 'date');
};

Kendini test et

  1. Bir indeks ne sağlar?

    • Veritabanının sürümünü yükseltir
    • Tüm kayıtları siler
    • Yeni object store oluşturur
    • Belirli bir alan üzerinden hızlı arama yapmayı
    Cevabı göster

    Belirli bir alan üzerinden hızlı arama yapmayı — Doğru! İndeks bir alan üzerinden hızlı arama yapar.

  2. İndeks oluştur

    const index = store.____('by_date', 'date');
    Cevabı göster
    const index = store.createIndex('by_date', 'date');
  3. İndeks terimlerini eşleştir

    createIndex
    indeks oluştur
    IDBKeyRange
    anahtar aralığı
    index.getAll
    tüm eşleşmeleri çek
    index.get
    tek kayıt çek

İleri seviye bölümündeki tüm dersler