IDBObjectStore: count() 方法
注意:此功能在 Web Workers 中可用。
IDBObjectStore 接口的 count() 方法返回一个 IDBRequest 对象,并在单独的线程中返回与提供的键或 IDBKeyRange 匹配的记录总数。如果未提供参数,它将返回存储中的记录总数。
语法
js
count()
count(query)
参数
query可选-
一个键或
IDBKeyRange对象,用于指定要计数的记录范围。
返回值
一个 IDBRequest 对象,后续与此操作相关的事件会在此对象上触发。
如果操作成功,请求的 result 属性的值将是与给定查询匹配的记录数。
异常
此方法可能会抛出以下类型之一的DOMException:
InvalidStateErrorDOMException-
如果此
IDBObjectStore已被删除,则会抛出此错误。 TransactionInactiveErrorDOMException-
如果此
IDBObjectStore的事务不活跃,则会抛出此异常。 DataErrorDOMException-
如果指定的键或键范围无效,则抛出此异常。
示例
在这个简单的代码片段中,我们创建了一个事务,检索了一个对象存储,然后使用 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① |
浏览器兼容性
加载中…
另见
- 使用 IndexedDB
- 开始事务:
IDBDatabase - 使用事务:
IDBTransaction - 设置键的范围:
IDBKeyRange - 检索和修改数据:
IDBObjectStore - 使用游标:
IDBCursor - 参考示例:待办事项通知(查看实时示例)。