Indeks ve sorgu
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
-
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.
-
İndeks oluştur
const index = store.____('by_date', 'date');Cevabı göster
const index = store.createIndex('by_date', 'date'); -
İ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