IDBKeyRange: upperBound() 静态方法

注意: 此功能在 Web 工作线程 中可用。

IDBKeyRange 接口的 upperBound() 静态方法创建一个新的上限键范围。默认情况下,它包含上限端点值并关闭。

语法

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

参数

upper

指定新键范围的上限。

open 可选

指示上限是否排除端点值。默认值为 false。

返回值

IDBKeyRange: 新创建的键范围。

异常

DataError DOMException

如果与 upper 参数关联的键不是有效键,则抛出此异常。

示例

以下示例说明了如何使用上限键范围。在这里,我们声明 keyRangeValue = IDBKeyRange.upperBound("F"); — 一个包含值 "F" 及其之前所有值的范围。我们打开一个事务(使用 IDBTransaction)和一个对象存储,并使用 IDBObjectStore.openCursor 打开一个游标,将 keyRangeValue 声明为其可选键范围值。

如果我们使用 IDBKeyRange.upperBound("F", true);,则该范围将排除 "F";并且只包含它之前的值。

注意: 为了提供更完整的示例,让您尝试键范围,请查看我们的 IDBKeyRange-example 仓库 (也查看示例演示)。

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.");
    }
  };
}

规范

规范
Indexed Database API 3.0
# ref-for-dom-idbkeyrange-upperbound①

浏览器兼容性

BCD 表格只能在浏览器中加载

参见