IDBKeyRange: only() 静的メソッド
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.
メモ: この機能はウェブワーカー内で利用可能です。
only()
は IDBKeyRange
インターフェイスのメソッドで、単一の値からなる新しいキーの範囲を生成します。
構文
js
IDBKeyRange.only(value)
引数
value
-
新しいキーの範囲として用いる値です。
返値
新しく生成されたキーの範囲を表す IDBKeyRange
です。
例外
DataError
DOMException
-
引数
value
が有効なキーでないとき投げられます。
例
以下の例では、単一の値からなるキーの範囲の使用法を示します。keyRangeValue = IDBKeyRange.only("A");
と宣言します。これは、値 "A"
のみを含む範囲です。(IDBTransaction
により) トランザクションを開き、オブジェクトストアを開き、省略可能なキーの範囲の値を keyRangeValue
として IDBObjectStore.openCursor
でトランザクションを開きます。これにより、このカーソルはキーの値が "A"
であるレコードのみを取得します。
メモ: キーの範囲に関する実験ができるより完全な例は、IDBKeyRange リポジトリーを参照してください。(動く例も見る)
js
function displayData() {
const keyRangeValue = IDBKeyRange.only("A");
const transaction = db.transaction(["fThings"], "readonly");
const objectStore = transaction.objectStore("fThings");
objectStore.openCursor(keyRangeValue).onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
const listItem = document.createElement("li");
listItem.textContent = `${cursor.value.fThing}, ${cursor.value.fRating}`;
list.appendChild(listItem);
cursor.continue();
} else {
console.log("全項目を表示しました。");
}
};
}
仕様書
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbkeyrange-only① |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- IndexedDB の使用
- トランザクションの開始:
IDBDatabase
- トランザクションの使用:
IDBTransaction
- キーの範囲の設定:
IDBKeyRange
- データの取得と変更:
IDBObjectStore
- カーソルの使用:
IDBCursor
- リファレンス例: To-do Notifications (動く例を見る)