IDBKeyRange: lowerBound() 静态方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

注意:此功能在 Web Workers 中可用。

lowerBound() 静态方法是 IDBKeyRange 接口的一个方法,它创建一个只有下限的新键范围。默认情况下,它包含下边界值且是闭合的。

语法

js
IDBKeyRange.lowerBound(lower)
IDBKeyRange.lowerBound(lower, open)

参数

lower

指定新键范围的下限。

open 可选

指示下限是否排除边界值。默认为 false。

返回值

IDBKeyRange: 新创建的键范围。

异常

DataError DOMException

如果与 lower 参数关联的键无效,则抛出此异常。

示例

以下示例说明了如何使用下限键范围。此处我们声明 keyRangeValue = IDBKeyRange.lowerBound("F", false); — 该范围包含值 "F" 及其之后的所有值。我们打开一个事务(使用 IDBTransaction)和一个对象存储,并通过 IDBObjectStore.openCursor 打开一个游标,将 keyRangeValue 声明为其可选键范围值。这意味着游标将仅检索键值为 "F" 的记录及其之后的所有记录。如果我们使用 IDBKeyRange.lowerBound("F", true);,则该范围不包含 "F";只包含其之后的值。

注意:有关一个更完整的示例,允许您尝试键范围,请查看我们的 IDBKeyRange-example 仓库(也可以 在线查看示例)。

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

浏览器兼容性

另见