IDBObjectStore: Methode openKeyCursor()

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

js
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 oder IDBIndex 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:

js
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