IDBCursor: primaryKey 属性

Baseline 已广泛支持

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

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

primaryKeyIDBCursor 接口的一个只读属性,它返回游标当前有效的键。如果游标正在进行迭代或已超出其范围,则该属性设置为 undefined。游标的主键可以是任何数据类型。

任何数据类型的值。

异常

InvalidStateError DOMException

如果游标正在前进或已完成,则会抛出此错误。

示例

在这个简单的代码片段中,我们创建一个事务,检索一个对象存储,然后使用游标来遍历对象存储中的所有记录。在每次迭代中,我们将游标的主键记录到控制台。

光标不需要我们根据键来选择数据;我们可以直接获取所有数据。另请注意,在循环的每次迭代中,你可以使用 cursor.value.foo 从光标对象下的当前记录中获取数据。有关完整的可工作示例,请参阅我们的 IDBCursor 示例在线查看示例)。

js
function displayData() {
  const transaction = db.transaction(["rushAlbumList"], "readonly");
  const objectStore = transaction.objectStore("rushAlbumList");

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

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

规范

规范
Indexed Database API 3.0
# ref-for-dom-idbcursor-primarykey①

浏览器兼容性

另见