IDBObjectStore: getAll()-Methode
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 getAll()-Methode der IDBObjectStore-Schnittstelle gibt ein IDBRequest-Objekt zurück. Dieses enthält alle Objekte im Object Store, die dem angegebenen Parameter entsprechen, oder alle Objekte im Object Store, wenn keine Parameter angegeben werden.
Wenn ein Wert gefunden wird, wird ein strukturierter Klon davon erstellt und als Ergebnis des Request-Objekts festgelegt.
Diese Methode liefert dasselbe Ergebnis für:
- einen Datensatz, der in der Datenbank nicht vorhanden ist
- einen Datensatz mit dem Wert
undefined
Um diese Fälle zu unterscheiden, können Sie entweder:
- die Methode
openCursor()mit demselben Schlüssel aufrufen. Sie liefert einen Cursor, wenn der Datensatz vorhanden ist, andernfalls keinen Cursor. - die Methode
count()mit demselben Schlüssel aufrufen. Sie gibt1zurück, wenn der Datensatz vorhanden ist, andernfalls0.
Syntax
getAll()
getAll(query)
getAll(query, count)
getAll(options)
Parameter
Die Methode getAll() kann separate Parameter oder ein einzelnes Optionsobjekt entgegennehmen, das die Parameter als Eigenschaften enthält.
Die Parameter können Folgendes umfassen:
queryOptional-
Ein Schlüssel oder eine
IDBKeyRange, die abgefragt werden soll. 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-Exception ausgelöst.
Wenn ein Objekt als Parameter angegeben wird, kann es 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 an in aufsteigender Schlüsselreihenfolge durchlaufen. Dies ist der Standardwert.
nextunique-
Die Objekte werden vom Anfang an in aufsteigender Schlüsselreihenfolge durchlaufen. Dabei werden dieselben Objekte wie bei
nextzurückgegeben, da doppelte Schlüssel inIDBObjectStores nicht zulässig sind. prev-
Die Objekte werden vom Ende an in absteigender Schlüsselreihenfolge durchlaufen.
prevunique-
Die Objekte werden vom Ende an in absteigender Schlüsselreihenfolge durchlaufen. Dabei werden dieselben Objekte 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 des Request-Objekts ein Array mit den Werten aller Datensätze, die der angegebenen Abfrage entsprechen. Falls count angegeben wurde, ist die Anzahl der Werte auf diesen Wert begrenzt.
Exceptions
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-getall> |
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).