IDBObjectStore: Methode getAllKeys()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.
Die Methode getAllKeys() der Schnittstelle IDBObjectStore gibt ein IDBRequest-Objekt zurück, mit dem die Datensatzschlüssel aller Objekte im Object Store abgerufen werden, die dem angegebenen Parameter entsprechen. Werden keine Parameter angegeben, werden die Schlüssel aller Objekte im Store abgerufen.
Wenn ein Wert erfolgreich gefunden wird, wird ein strukturierter Klon davon erstellt und als Ergebnis des Anfrageobjekts festgelegt.
Diese Methode liefert in den folgenden Fällen dasselbe Ergebnis:
- Ein Datensatz ist in der Datenbank nicht vorhanden.
- Ein Datensatz hat den Wert
undefined.
Um diese Fälle zu unterscheiden, müssen Sie die Methode openCursor() mit demselben Schlüssel aufrufen. Diese Methode liefert einen Cursor, wenn der Datensatz vorhanden ist, andernfalls keinen.
Syntax
getAllKeys()
getAllKeys(query)
getAllKeys(query, count)
getAllKeys(options)
Parameter
Die Methode getAllKeys() kann separate Parameter oder ein einzelnes Optionsobjekt entgegennehmen, das die Parameter als Eigenschaften enthält.
Die Parameter können Folgendes umfassen:
queryOptional-
Ein Wert, der ein
IDBKeyRangeist oder zu einem solchen aufgelöst wird. Wird dieser Wert nicht angegeben, wird standardmäßig ein Schlüsselbereich verwendet, der alle Datensätze in diesem Object Store auswählt. countOptional-
Gibt die Anzahl der zurückzugebenden Werte an, wenn mehr als einer gefunden wird. Ist der Wert kleiner als
0oder größer als2^32 - 1, wird eineTypeError-Ausnahme ausgelöst.
Wenn ein Objektparameter angegeben wird, kann er folgende Eigenschaften enthalten:
queryOptional-
Siehe die obige Definition von
query. countOptional-
Siehe die obige Definition von
count. directionOptional-
Ein Aufzählungswert, der die Richtung angibt, in der die Objekte durchlaufen werden. Mögliche Werte sind:
next-
Die Objekte werden vom Anfang aus in aufsteigender Schlüsselreihenfolge durchlaufen. Dies ist der Standardwert.
nextunique-
Die Objekte werden vom Anfang aus in aufsteigender Schlüsselreihenfolge durchlaufen. Dabei werden dieselben Schlüssel wie bei
nextzurückgegeben, da doppelte Schlüssel inIDBObjectStores nicht zulässig sind. prev-
Die Objekte werden vom Ende aus in absteigender Schlüsselreihenfolge durchlaufen.
prevunique-
Die Objekte werden vom Ende aus in absteigender Schlüsselreihenfolge durchlaufen. Dabei werden dieselben Schlüssel wie bei
prevzurückgegeben, da doppelte Schlüssel inIDBObjectStores nicht zulässig sind.
Rückgabewert
Ein IDBRequest-Objekt, auf dem nachfolgende Ereignisse im Zusammenhang mit diesem Vorgang ausgelöst werden.
Wenn der Vorgang erfolgreich ist, enthält die Eigenschaft result der Anfrage ein Array mit den Schlüsseln aller Datensätze, die der angegebenen Abfrage entsprechen, höchstens jedoch so viele, wie durch count angegeben wurden.
Ausnahmen
Diese Methode kann eine DOMException eines der folgenden Typen auslösen:
TransactionInactiveErrorDOMException-
Wird ausgelöst, wenn die Transaktion dieses
IDBObjectStoreinaktiv ist. DataErrorDOMException-
Wird ausgelöst, wenn der angegebene Schlüssel oder Schlüsselbereich einen ungültigen Schlüssel enthält oder
nullist. InvalidStateErrorDOMException-
Wird ausgelöst, wenn der
IDBObjectStoregelöscht oder entfernt wurde. TypeError-
Wird ausgelöst, wenn der Parameter
countnicht im Bereich von0bis einschließlich2^32 - 1liegt.
Spezifikationen
| Spezifikation |
|---|
| Indexed Database API 3.0> # dom-idbobjectstore-getallkeys> |
Browser-Kompatibilität
Siehe auch
- IndexedDB verwenden
- Transaktionen starten:
IDBDatabase - Transaktionen verwenden:
IDBTransaction - Einen Schlüsselbereich festlegen:
IDBKeyRange - Daten abrufen und ändern:
IDBObjectStore - Cursor verwenden:
IDBCursor - Referenzbeispiel: To-do Notifications (Beispiel live ansehen).