IDBObjectStore: getKey() メソッド
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
IDBObjectStore
インターフェイスの getKey()
メソッドは、IDBRequest
オブジェクトを返し、別スレッドで指定のクエリーで選択されたキーを返します。これはオブジェクトストアから指定のレコードを取得する用です。
キーが正常に見つかった場合は、その構造化複製を作成し、要求オブジェクトの result
に設定します。
メモ: この機能はウェブワーカー内で利用可能です。
構文
js
getKey(key)
引数
key
-
取得するレコードを特定するキーまたはキー範囲です。
返値
この操作に関係する今後のイベントが発火する IDBRequest
オブジェクトです。
操作に成功した場合は、この要求の result
プロパティの値は与えられたキーまたはキー範囲にマッチする最初のレコードのキーになります。
例外
このメソッドは、以下の種類のいずれかの DOMException
を投げる可能性があります。
InvalidStateError
DOMException
-
この
IDBObjectStore
が削除されたか取り除かれたとき投げられます。 TransactionInactiveError
DOMException
-
この
IDBObjectStore
のトランザクションが実行中でないとき投げられます。 DataError
DOMException
-
与えられたキーまたはキー範囲が無効なキーを含むとき投げられます。
例
js
let openRequest = indexedDB.open("telemetry");
openRequest.onsuccess = (event) => {
let db = event.target.result;
let store = db.transaction("netlogs").objectStore("netlogs");
let today = new Date();
let yesterday = new Date(today);
yesterday.setDate(today.getDate() - 1);
let request = store.getKey(IDBKeyRange(yesterday, today));
request.onsuccess = (event) => {
let when = event.target.result;
alert(`直近 24 時間で最初のアクティビティは ${when} に発生しました。`);
};
};
仕様書
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbobjectstore-getkey① |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- IndexedDB の使用
- トランザクションの開始:
IDBDatabase
- トランザクションの使用:
IDBTransaction
- キー範囲の設定:
IDBKeyRange
- データの取得と変更:
IDBObjectStore
- カーソルの使用:
IDBCursor
- リファレンス例: To-do Notifications (動く例を見る)