IDBIndex: getAll() メソッド

IDBIndex インターフェイスの getAll() メソッドは、インデックス内の全オブジェクトを取得します。

オブジェクトは遅延評価で作られるので、カーソルの value プロパティを参照するのに比べてパフォーマンスのコストがかかります。getAll() のような機能を用いるには、ブラウザーはすべてのオブジェクトを一度に作らなければなりません。たとえば、単に各キーを参照したい場合は、カーソルを用いるほうが効率的です。しかし、オブジェクトストア内の全オブジェクトの配列を取得しようとしている場合は、getAll() を用いるべきです。

構文

js
getAll()
getAll(query)
getAll(query, count)

引数

query 省略可

取得するレコードを特定するキーまたは IDBKeyRange です。この値が null または省略された場合は、ブラウザーは無限のキー範囲を用います。

count 省略可

返すレコードの数です。この値が問い合わせ結果のレコード数を超える場合は、ブラウザーは問い合わせ結果のレコードのみを取得します。この値が 0 未満や 2^32 - 1 超の場合は、TypeError 例外が投げられます。

返値

この操作に関係する今後のイベントが発火する IDBRequest オブジェクトです。

操作に成功した場合は、この要求の result プロパティの値は与えられたクエリーにマッチする全レコード (count が指定された場合は count の値まで) の値の Array になります。

例外

このメソッドは、以下の種類のいずれかの DOMException を投げる可能性があります。

TransactionInactiveError DOMException

この IDBIndex のトランザクションが実行中でないとき投げられます。

InvalidStateError DOMException

この IDBIndex が削除されたか取り除かれたとき投げられます。

引数 count0 から 2^32 - 1 の範囲 (両端を含む) 外のときは、TypeError 例外が投げられます。

js
const myIndex = objectStore.index("index");
const getAllRequest = myIndex.getAll();
getAllRequest.onsuccess = () => {
  console.log(getAllRequest.result);
};

仕様書

Specification
Indexed Database API 3.0
# ref-for-dom-idbindex-getall①

ブラウザーの互換性

BCD tables only load in the browser

関連情報