IDBObjectStore: Methode openKeyCursor()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
Die openKeyCursor()
-Methode der IDBObjectStore
-Schnittstelle gibt ein IDBRequest
-Objekt zurück, dessen Ergebnis auf einen IDBCursor
gesetzt wird, der verwendet werden kann, um durch übereinstimmende Ergebnisse zu iterieren. Wird verwendet, um mit einem Cursor durch die Schlüssel eines Objektspeichers zu iterieren.
Um festzustellen, ob die Hinzufügungsoperation erfolgreich abgeschlossen wurde, hören Sie auf das success
-Ereignis des Ergebnisses.
Syntax
openKeyCursor()
openKeyCursor(query)
openKeyCursor(query, direction)
Parameter
query
Optional-
Der Schlüsselbereich, der abgefragt werden soll. Wenn ein einzelner gültiger Schlüssel übergeben wird, wird standardmäßig ein Bereich verwendet, der nur diesen Schlüssel enthält. Wenn nichts übergeben wird, wird standardmäßig ein Schlüsselbereich verwendet, der alle Datensätze in diesem Objektspeicher auswählt.
direction
Optional-
Ein String, der dem Cursor mitteilt, in welche Richtung er sich bewegen soll. Standardmäßig ist
next
. Gültige Werte sind:next
-
Der Cursor wird am Beginn des Speichers geöffnet; dann gibt der Cursor alle Datensätze, einschließlich Duplikate, in aufsteigender Reihenfolge der Schlüssel zurück.
nextunique
-
Der Cursor wird am Beginn des Speichers geöffnet; dann gibt der Cursor alle Datensätze zurück, die keine Duplikate sind, in aufsteigender Reihenfolge der Schlüssel.
prev
-
Der Cursor wird am Ende des Speichers geöffnet; dann gibt der Cursor alle Datensätze, einschließlich Duplikate, in absteigender Reihenfolge der Schlüssel zurück.
prevunique
-
Der Cursor wird am Ende des Speichers geöffnet; dann gibt der Cursor alle Datensätze zurück, die keine Duplikate sind, in absteigender Reihenfolge der Schlüssel.
Rückgabewert
Ein IDBRequest
-Objekt, bei dem nachfolgende Ereignisse im Zusammenhang mit dieser Operation ausgelöst werden.
Wenn die Operation erfolgreich ist, ist der Wert der result
-Eigenschaft der Anfrage:
- ein
IDBCursor
-Objekt, das auf den ersten Datensatz zeigt, der der gegebenen Abfrage entspricht null
, wenn keine übereinstimmenden Datensätze gefunden wurden.
Ausnahmen
Diese Methode kann eine DOMException
eines der folgenden Typen auslösen:
InvalidStateError
DOMException
-
Wird ausgelöst, wenn dieser
IDBObjectStore
oderIDBIndex
gelöscht wurde. TransactionInactiveError
DOMException
-
Wird ausgelöst, wenn die Transaktion dieses
IDBObjectStore
inaktiv ist. DataError
DOMException
-
Wird ausgelöst, wenn der angegebene Schlüssel oder der Schlüsselbereich ungültig ist.
Beispiele
In diesem einfachen Fragment erstellen wir eine Transaktion, rufen einen Objektspeicher ab und verwenden dann einen Cursor, um durch alle Datensätze im Objektspeicher zu iterieren:
const transaction = db.transaction("name", "readonly");
const objectStore = transaction.objectStore("name");
const request = objectStore.openKeyCursor();
request.onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
// cursor.key contains the key of the current record being iterated through
// note that there is no cursor.value, unlike for openCursor
// this is where you'd do something with the result
cursor.continue();
} else {
// no more results
}
};
Spezifikationen
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbobjectstore-openkeycursor① |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Verwenden von IndexedDB
- Transaktionen starten:
IDBDatabase
- Verwenden von Transaktionen:
IDBTransaction
- Einen Schlüsselbereich festlegen:
IDBKeyRange
- Abrufen und Ändern Ihrer Daten:
IDBObjectStore
- Verwenden von Cursorn:
IDBCursor
- Referenzbeispiel: To-do-Benachrichtigungen (Beispiel live ansehen).