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①

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
lowerBound() static method

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報