1
私は現在オブジェクトストアのキーパスとしてを使用しています。IndexedDbで日付をインデックスとして使用し、それを使ってソートする
私は最新のエントリを取得するために使用できるインデックス - created
を追加したいと思います。
const latestMediaRequest = store.getAll();
latestMediaRequest.onsuccess = function (event) {
const allData = event.target.result;
const targetEntry = allData[allData.length - 1]; // nope
}
これは、私はもともと(getNewest
経由)最新のエントリを取得しようとしたが、それは期待通りに働いていなかった方法です:私は、インデックスを追加しましたエントリの追加(作業):
const request = database.transaction(storeName, "readwrite")
.objectStore(storeName)
.add(dbEntry); // contains "created" timestamp
そして、私はGUIDで取得していますどのようにこれがある(作業):
const request = database.transaction(storeName, "readwrite")
.objectStore(storeName)
.get(mediaId);
私はここで、インデックスを作成しました:
request.onupgradeneeded = function (event) {
const db = event.target.result;
if (db.objectStoreNames.contains(storeName)) {
db.deleteObjectStore(storeName);
}
const objectStore = db.createObjectStore(storeName, { keyPath: keyPath });
objectStore.createIndex("created", "created", { unique: false });
};
はどのようにgetNewest
スニペットは、日付インデックスの順序によってフェッチをサポートするように変更することができますか?これを使用して最も古いアイテムを再帰的に削除するので、ただ1つの "lastAdded"エントリを保存することはできません。
'openCursor(ヌル、 '前へ')'最後の日から開始すると – Josh