我目前在对象库中使用guid
作为键路径。
我想添加一个索引 - created
- 我可以用它来获取最新的条目。我添加了索引:
这就是我最初尝试获取最新条目的方式(通过getNewest
),但它没有按预期工作:
const latestMediaRequest = store.getAll();
latestMediaRequest.onsuccess = function (event) {
const allData = event.target.result;
const targetEntry = allData[allData.length - 1]; // nope
}
这就是我目前正在添加条目(工作)的方式:
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
代码段以支持按日期索引的顺序提取?我将使用它来递归删除最旧的项目 - 所以我不能只存储一个“lastAdded”条目。
答案 0 :(得分:0)
这就是诀窍:
// "created"
const latestMediaRequest = store.index(dateIndex).openCursor();
latestMediaRequest.onsuccess = function (event) {
const targetEntry = event.target.result.value;
}