IDBKeyRange: obereGrenze() 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 upperBound() statische Methode der IDBKeyRange-Schnittstelle erstellt einen neuen Schlüsselbereich mit oberer Grenze. Standardmäßig enthält er den oberen Endpunktwert und ist geschlossen.

Syntax

js
IDBKeyRange.upperBound(upper)
IDBKeyRange.upperBound(upper, open)

Parameter

upper

Gibt die obere Grenze des neuen Schlüsselbereichs an.

open Optional

Gibt an, ob die obere Grenze den Endpunktwert ausschließt. Standardmäßig ist dies false.

Rückgabewert

IDBKeyRange: Der neu erstellte Schlüsselbereich.

Ausnahmen

DataError DOMException

Wird ausgelöst, wenn der Schlüssel, der dem upper Parameter zugeordnet ist, kein gültiger Schlüssel ist.

Beispiele

Das folgende Beispiel zeigt, wie Sie einen Schlüsselbereich mit einer oberen Grenze verwenden würden. Hier deklarieren wir keyRangeValue = IDBKeyRange.upperBound("F"); — einen Bereich, der den Wert "F" und alles davor einschließt. Wir eröffnen eine Transaktion (unter Verwendung von IDBTransaction) und einen Objektspeicher und öffnen einen Cursor mit IDBObjectStore.openCursor, indem wir keyRangeValue als seinen optionalen Schlüsselbereichswert deklarieren.

Wenn wir IDBKeyRange.upperBound("F", true); verwenden würden, dann würde der Bereich "F" ausschließen und stattdessen nur die Werte davor einschließen.

Hinweis: Für ein vollständigeres Beispiel, das Ihnen erlaubt, mit dem Schlüsselbereich zu experimentieren, werfen Sie einen Blick auf unser IDBKeyRange-Beispiel-Repo (Beispiel auch live ansehen.)

js
function displayData() {
  const keyRangeValue = IDBKeyRange.upperBound("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-upperbound①

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch