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①

瀏覽器相容性

另見