我目前正在使用
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
这就是我通过指导(工作)的方式:
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”条目。
这成功了:
// "created"
const latestMediaRequest = store.index(dateIndex).openCursor();
latestMediaRequest.onsuccess = function (event) {
const targetEntry = event.target.result.value;
}