IDBKeyRange: upperBound() 静的メソッド
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
メモ: この機能はウェブワーカー内で利用可能です。
upperBound() は IDBKeyRange インターフェイスのメソッドで、上限のみを持つ新しいキーの範囲を生成します。既定では、端点を含む「閉」です。
構文
js
IDBKeyRange.upperBound(upper)
IDBKeyRange.upperBound(upper, open)
引数
返値
新しく生成されたキーの範囲を表す IDBKeyRange です。
例外
DataErrorDOMException-
引数
upperに割り当てられたキーが有効なキーでないとき投げられます。
例
以下の例は、上限が指定されたキーの範囲の使用法を示します。keyRangeValue = IDBKeyRange.upperBound("F"); と宣言します。これは、値 "F" のそれより前の全てを含む範囲です。(IDBTransaction により) トランザクションを開き、オブジェクトストアを開き、省略可能なキーの範囲の値を keyRangeValue として によりカーソルを開きます。IDBObjectStore.openCursor
IDBKeyRange.upperBound("F", true); を使用すると、値 "F" は範囲に含まれず、それより前の値のみが範囲に含まれます。
メモ: キーの範囲に関する実験ができるより完全な例は、IDBKeyRange-example リポジトリーを参照してください。(動く例も見る)
js
function displayData() {
const keyRangeValue = IDBKeyRange.upperBound("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("全項目を表示しました。");
}
};
}
仕様書
| 仕様書 |
|---|
| Indexed Database API 3.0> # ref-for-dom-idbkeyrange-upperbound①> |
ブラウザーの互換性
関連情報
- IndexedDB の使用
- トランザクションの開始:
IDBDatabase - トランザクションの使用:
IDBTransaction - キーの範囲の設定:
IDBKeyRange - データの取得と変更:
IDBObjectStore - カーソルの使用:
IDBCursor - リファレンス例: To-do Notifications (動く例を見る)