Ich verwende derzeit einen guid
als Schlüsselpfad in meinem Objektspeicher.Verwenden von Datum als Index in IndexedDb und Sortieren
Ich möchte einen Index hinzufügen - created
- dass ich dann verwenden kann, um den neuesten Eintrag zu erhalten. Ich habe den Index hinzugefügt:
Dies ist, wie ich ursprünglich versucht, den neuesten Eintrag zu erhalten (über getNewest
), aber es war nicht wie erwartet funktioniert:
const latestMediaRequest = store.getAll();
latestMediaRequest.onsuccess = function (event) {
const allData = event.target.result;
const targetEntry = allData[allData.length - 1]; // nope
}
Dies ist, wie ich bin zur Zeit Hinzufügen von Einträgen (Arbeits):
const request = database.transaction(storeName, "readwrite")
.objectStore(storeName)
.add(dbEntry); // contains "created" timestamp
Und das ist, wie ich durch guid bekommen (in Betrieb):
const request = database.transaction(storeName, "readwrite")
.objectStore(storeName)
.get(mediaId);
Ich habe den Index hier erstellt:
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 });
};
Wie kann der getNewest
Schnipsel modifiziert wird im Auftrag eines Datumsindex zur Unterstützung holen? Ich verwende dies, um die ältesten Elemente rekursiv zu löschen - so kann ich nicht einfach einen einzigen Eintrag "lastAdded" speichern.
'Opencursor (null, 'zurück')' nach dem letzten Tag starten – Josh