IDBObjectStore: count() 方法

Baseline 已广泛支持

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

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

IDBObjectStore 接口的 count() 方法返回一个 IDBRequest 对象,并在单独的线程中返回与提供的键或 IDBKeyRange 匹配的记录总数。如果未提供参数,它将返回存储中的记录总数。

语法

js
count()
count(query)

参数

query 可选

一个键或 IDBKeyRange 对象,用于指定要计数的记录范围。

返回值

一个 IDBRequest 对象,后续与此操作相关的事件会在此对象上触发。

如果操作成功,请求的 result 属性的值将是与给定查询匹配的记录数。

异常

此方法可能会抛出以下类型之一的DOMException

InvalidStateError DOMException

如果此 IDBObjectStore 已被删除,则会抛出此错误。

TransactionInactiveError DOMException

如果此 IDBObjectStore 的事务不活跃,则会抛出此异常。

DataError DOMException

如果指定的键或键范围无效,则抛出此异常。

示例

在这个简单的代码片段中,我们创建了一个事务,检索了一个对象存储,然后使用 count() 来计算存储中的记录数 —— 当 success 处理程序触发时,我们将计数(一个整数)记录到控制台。

js
const transaction = db.transaction(["fThings"], "readonly");
const objectStore = transaction.objectStore("fThings");

const countRequest = objectStore.count();
countRequest.onsuccess = () => {
  console.log(countRequest.result);
};

规范

规范
Indexed Database API 3.0
# ref-for-dom-idbobjectstore-count①

浏览器兼容性

另见