IDBKeyRange.lowerBound()
IDBKeyRange インターフェイスの lowerBound() メソッドは、下限のみを持つ新しいキーの範囲を生成します。デフォルトでは、端点の値を含む「閉」です。
注: この機能は Web Worker 内で利用可能です
構文
js
lowerBound(lower)
lowerBound(lower, open)
引数
lower-
新しいキーの範囲の下限を指定します。
open省略可-
下限が端点の値を除くかどうかを表します。デフォルトは
falseです。
返値
新しく生成されたキーの範囲を表す IDBKeyRange です。
例外
DataErrorDOMException-
引数
lowerに割り当てられたキーが有効なキーでないとき投げられます。
例
以下の例では、下限が指定されたキーの範囲の使用法を示します。keyRangeValue = IDBKeyRange.lowerBound("F", false); と宣言します。これは、値 "F" とそれより後の全てを含む範囲です。(IDBTransaction により) トランザクションを開き、オブジェクトストアを開き、省略可能なキーの範囲の値を keyRangeValue として IDBObjectStore.openCursor (en-US) でカーソルを開きます。これにより、このカーソルはキーの値が "F" のレコードと、それより後の全てのレコードのみを取得します。IDBKeyRange.lowerBound("F", true); を用いた場合、範囲に "F" は含まれず、それより後の値のみを含みます。
メモ: キーの範囲に関する実験ができるより完全な例は、IDBKeyRange-example リポジトリを参照してください。(動く例も見る)
js
function displayData() {
const keyRangeValue = IDBKeyRange.lowerBound("F");
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-lowerbound① |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- IndexedDB の使用
- トランザクションの開始:
IDBDatabase - トランザクションの使用:
IDBTransaction - キーの範囲の設定:
IDBKeyRange - データの取得と変更:
IDBObjectStore - カーソルの使用:
IDBCursor - リファレンス例: To-do Notifications (動く例を見る)