IDBIndex: keyPath-Eigenschaft
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die keyPath
-Eigenschaft des IDBIndex
-Interfaces gibt den key path des aktuellen Indexes zurück. Wenn dieser null ist, wird dieser Index nicht automatisch ausgefüllt.
Wert
Jeder Datentyp, der als key path verwendet werden kann.
Beispiele
Im folgenden Beispiel öffnen wir eine Transaktion und einen Objektspeicher und holen den Index lName
aus einer einfachen Kontaktdatenbank. Wir öffnen dann einen einfachen Cursor auf dem Index mit IDBIndex.openCursor
— dies funktioniert genauso wie das Öffnen eines Cursors direkt auf einem ObjectStore
mithilfe von IDBObjectStore.openCursor
, außer dass die zurückgegebenen Datensätze basierend auf dem Index und nicht dem Primärschlüssel sortiert werden.
Der key path des aktuellen Indexes wird in der Konsole ausgegeben: Er sollte als lName
zurückgegeben werden.
Schließlich iterieren wir durch jeden Datensatz und fügen die Daten in eine HTML-Tabelle ein. Ein vollständiges Arbeitsbeispiel finden Sie in unserem IndexedDB-examples Demo-Repo (Beispiel live ansehen).
function displayDataByIndex() {
tableEntry.textContent = "";
const transaction = db.transaction(["contactsList"], "readonly");
const objectStore = transaction.objectStore("contactsList");
const myIndex = objectStore.index("lName");
console.log(myIndex.keyPath);
myIndex.openCursor().onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
const tableRow = document.createElement("tr");
for (const cell of [
cursor.value.id,
cursor.value.lName,
cursor.value.fName,
cursor.value.jTitle,
cursor.value.company,
cursor.value.eMail,
cursor.value.phone,
cursor.value.age,
]) {
const tableCell = document.createElement("td");
tableCell.textContent = cell;
tableRow.appendChild(tableCell);
}
tableEntry.appendChild(tableRow);
cursor.continue();
} else {
console.log("Entries all displayed.");
}
};
}
Spezifikationen
Specification |
---|
Indexed Database API 3.0 # dom-idbindex-keypath |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Verwendung von IndexedDB
- Transaktionen starten:
IDBDatabase
- Verwendung von Transaktionen:
IDBTransaction
- Festlegen eines Schlüsselbereichs:
IDBKeyRange
- Abrufen und Ändern Ihrer Daten:
IDBObjectStore
- Verwendung von Cursoren:
IDBCursor
- Referenzbeispiel: To-do-Benachrichtigungen (Beispiel live ansehen).