IDBKeyRange:bound() 静态方法

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

bound()IDBKeyRange接口的静态方法,用于创建一个具有指定上下限的新键范围。边界可以是开放的(即边界不包含端点值)或封闭的(即边界包含端点值)。默认情况下,边界是封闭的。

语法

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

参数

lower

指定新键范围的下限。

upper

指定新键范围的上限。

lowerOpen 可选

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

upperOpen 可选

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

返回值

IDBKeyRange:新创建的键范围。

异常

DataError DOMException

当满足以下条件之一时抛出

  • lower 或 upper 参数未传递有效的键。
  • 下限键大于上限键。
  • 下限键和上限键匹配,并且其中一个边界是开放的。

示例

以下示例说明了如何使用绑定键范围。在这里,我们声明 keyRangeValue = IDBKeyRange.bound("A", "F"); - “A” 和 “F” 之间的一个范围。我们打开一个事务(使用 IDBTransaction)和一个对象存储,并使用 IDBObjectStore.openCursor 打开一个游标,声明 keyRangeValue 作为其可选键范围值。这意味着游标将仅检索键位于该范围内的记录。此范围包括值 “A” 和 “F”,因为我们没有声明它们应该是开放边界。如果我们使用 IDBKeyRange.bound("A", "F", true, true);,则该范围将不包括 "A""F",仅包括它们之间的值。

注意:有关允许您试验键范围的更完整的示例,请查看 indexeddb-examples 存储库中的 idbkeyrange 目录。(也可以查看实时示例)。

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

规范

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

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅