Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

IDBObjectStore: getAllRecords()-Methode

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Die getAllRecords()-Methode der IDBObjectStore-Schnittstelle ruft alle Datensätze (einschließlich Primärschlüssel und Werte) aus dem Object Store ab.

getAllRecords() kombiniert effektiv die Funktionalität von getAllKeys() und getAll(), indem es sowohl Primärschlüssel als auch Werte gleichzeitig auflistet. Diese kombinierte Operation ermöglicht es bestimmten Datenabrufmustern, erheblich schneller zu sein als Alternativen wie das Iterieren mit Cursors.

Syntax

js
getAllRecords()
getAllRecords(options)

Parameter

Ein Optionsobjekt, dessen Eigenschaften Folgendes einschließen können:

query Optional

Ein Schlüssel oder ein IDBKeyRange, der die abzurufenden Datensätze identifiziert. Wenn dieser Wert null ist oder nicht angegeben wird, verwendet der Browser einen ungebundenen Schlüsselbereich.

count Optional

Die Anzahl der zurückzugebenden Datensätze. Wenn dieser Wert die Anzahl der Datensätze in der Abfrage übersteigt, ruft der Browser nur die abgefragten Datensätze ab. Wenn der Wert kleiner als 0 oder größer als 2^32 - 1 ist, wird eine TypeError-Ausnahme ausgelöst.

direction Optional

Ein enumerierter Wert, der die Richtung angibt, in der die Datensätze durchlaufen werden, was wiederum die Reihenfolge definiert, in der sie zurückgegeben werden. Mögliche Werte sind:

next

Die Datensätze werden vom Anfang in aufsteigender Schlüsselreihenfolge durchlaufen. Dies ist der Standardwert.

nextunique

Die Datensätze werden vom Anfang in aufsteigender Schlüsselreihenfolge durchlaufen. Dies liefert die gleichen Datensätze wie next, da doppelte Schlüssel in IDBObjectStores nicht erlaubt sind.

prev

Die Datensätze werden vom Ende in absteigender Schlüsselreihenfolge durchlaufen.

prevunique

Die Datensätze werden vom Ende in absteigender Schlüsselreihenfolge durchlaufen. Dies liefert die gleichen Datensätze wie prev, da doppelte Schlüssel in IDBObjectStores nicht erlaubt sind.

Rückgabewert

Ein IDBRequest-Objekt, auf dem nachfolgende Ereignisse in Bezug auf diese Operation ausgelöst werden.

Wenn die Operation erfolgreich ist, ist der Wert der result-Eigenschaft der Anfrage ein Array von IDBRecord-Instanzen, die alle Datensätze repräsentieren, die mit der angegebenen Abfrage übereinstimmen, bis zur durch count (falls angegeben) spezifizierten Anzahl.

Jede IDBRecord-Instanz enthält die folgenden Eigenschaften:

key

Ein Wert, der den Schlüssel des Datensatzes darstellt. Dies ist identisch mit der primaryKey-Eigenschaft.

primaryKey

Der Primärschlüssel des Datensatzes.

value

Ein Wert, der den Wert des Datensatzes darstellt.

Ausnahmen

Diese Methode kann einen DOMException der folgenden Typen erzeugen:

InvalidStateError DOMException

Wird ausgelöst, wenn der IDBObjectStore gelöscht oder entfernt wurde.

TransactionInactiveError DOMException

Wird ausgelöst, wenn die Transaktion dieses IDBObjectStore inaktiv ist.

TypeError DOMException

Wird ausgelöst, wenn der count-Parameter nicht zwischen 0 und 2^32 - 1 liegt, einschließlich.

Beispiele

Grundlegende Verwendung

Dieses Beispiel fragt einen IDBObjectStore nach maximal 100 Datensätzen ab, deren Schlüssel nach "myKey" kommen, wobei die Ergebnisse in umgekehrter Reihenfolge sortiert werden.

Der Code erstellt zuerst eine Transaktion in einer IDBDatabase namens db (ohne den Code zum Öffnen der Datenbank zu nennen) und verwendet sie dann, um einen IDBObjectStore mit einer Kontaktliste abzurufen. Anschließend ruft er getAllRecords() auf dem Object Store auf, wobei eine Instanz von IDBRequest zurückgegeben wird. Ereignis-Listener werden zu dieser Anfrage für die success- und error-Ereignisse hinzugefügt. Bei Erfolg wird das Ergebnis event.target.result protokolliert (dies ist auch als request.result verfügbar). Dieses Ergebnis enthält ein Array von IDBRecord-Instanzen. Beachten Sie, dass, da dies eine Abfrage in einem IDBObjectStore ist, der key und der primaryKey in jedem Datensatz denselben Wert haben.

js
// Create a transaction on the database and use it to get the contained store
const transaction = db.transaction(["contactsList"], "readonly");
const objectStore = transaction.objectStore("contactsList");

const query = IDBKeyRange.lowerBound("myKey", true);

const request = objectStore.getAllRecords({
  query,
  count: 100,
  direction: "prev",
});

request.addEventListener("success", (event) => {
  const myRecords = event.target.result; // Array of IDBRecord instances
  console.log(myRecords);
});

request.addEventListener("error", (event) => {
  console.error("Error retrieving records:", event.target.error);
});

Spezifikationen

Spezifikation
Indexed Database API 3.0
# dom-idbobjectstore-getallrecords

Browser-Kompatibilität

Siehe auch