IDBKeyRange: bound() statische Methode

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.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die bound() statische Methode des IDBKeyRange Interfaces erstellt einen neuen Schlüsselbereich mit den angegebenen oberen und unteren Grenzen. Die Grenzen können offen sein (das heißt, die Grenzen schließen die Endpunktwerte aus) oder geschlossen sein (das heißt, die Grenzen schließen die Endpunktwerte ein). Standardmäßig sind die Grenzen geschlossen.

Syntax

js
IDBKeyRange.bound(lower, upper)
IDBKeyRange.bound(lower, upper, lowerOpen)
IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen)

Parameter

lower

Gibt die untere Grenze des neuen Schlüsselbereichs an.

upper

Gibt die obere Grenze des neuen Schlüsselbereichs an.

lowerOpen Optional

Gibt an, ob die untere Grenze den Endpunktwert ausschließt. Der Standardwert ist false.

upperOpen Optional

Gibt an, ob die obere Grenze den Endpunktwert ausschließt. Der Standardwert ist false.

Rückgabewert

IDBKeyRange: Der neu erstellte Schlüsselbereich.

Ausnahmen

DataError DOMException

Wird ausgelöst, wenn eine der folgenden Bedingungen erfüllt ist:

  • Die Parameter lower oder upper wurden kein gültiger Schlüssel übergeben.
  • Der untere Schlüssel ist größer als der obere Schlüssel.
  • Der untere und obere Schlüssel stimmen überein und eine der Grenzen ist offen.

Beispiele

Das folgende Beispiel zeigt, wie Sie einen gebundenen Schlüsselbereich verwenden würden. Hier deklarieren wir einen keyRangeValue = IDBKeyRange.bound("A", "F"); — einen Bereich zwischen den Werten von "A" und "F". Wir öffnen eine Transaktion (mit IDBTransaction) und einen Objekt- speicher und öffnen einen Cursor mit IDBObjectStore.openCursor, wobei wir keyRangeValue als seinen optionalen Schlüsselbereichswert angeben. Das bedeutet, dass der Cursor nur Datensätze mit Schlüsseln innerhalb dieses Bereichs abruft. Dieser Bereich schließt die Werte "A" und "F" ein, da wir nicht angegeben haben, dass sie offene Grenzen sein sollten. Wenn wir IDBKeyRange.bound("A", "F", true, true); verwendet hätten, würde der Bereich "A" und "F" nicht einschließen, sondern nur die Werte dazwischen.

Hinweis: Für ein vollständigeres Beispiel, das Ihnen ermöglicht, mit Schlüsselbereichen zu experimentieren, schauen Sie sich das Verzeichnis idbkeyrange im indexeddb-examples Repository an. (Sehen Sie sich das Beispiel auch live an.)

js
function displayData() {
  const keyRangeValue = IDBKeyRange.bound("A", "F");

  const transaction = db.transaction(["fThings"], "readonly");
  const objectStore = transaction.objectStore("fThings");

  objectStore.openCursor(keyRangeValue).onsuccess = (event) => {
    const cursor = event.target.result;
    if (cursor) {
      const listItem = document.createElement("li");
      listItem.textContent = `${cursor.value.fThing}, ${cursor.value.fRating}`;
      list.appendChild(listItem);

      cursor.continue();
    } else {
      console.log("Entries all displayed.");
    }
  };
}

Spezifikationen

Specification
Indexed Database API 3.0
# ref-for-dom-idbkeyrange-bound①

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch