IDBIndex: getAll() メソッド
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2020年1月以降、すべてのブラウザーで利用可能です。
IDBIndex インターフェイスの getAll() メソッドは、インデックス内の全オブジェクトを取得します。
オブジェクトは遅延評価で作られるので、カーソルの value プロパティを参照するのに比べてパフォーマンスのコストがかかります。getAll() のような機能を用いるには、ブラウザーはすべてのオブジェクトを一度に作らなければなりません。たとえば、単に各キーを参照したい場合は、カーソルを用いるほうが効率的です。しかし、オブジェクトストア内の全オブジェクトの配列を取得しようとしている場合は、getAll() を用いるべきです。
構文
getAll()
getAll(query)
getAll(query, count)
引数
query省略可-
取得するレコードを特定するキーまたは
IDBKeyRangeです。この値がnullまたは省略された場合は、ブラウザーは無限のキー範囲を用います。 count省略可-
返すレコードの数です。この値が問い合わせ結果のレコード数を超える場合は、ブラウザーは問い合わせ結果のレコードのみを取得します。この値が
0未満や2^32 - 1超の場合は、TypeError例外が投げられます。
返値
この操作に関係する今後のイベントが発火する IDBRequest オブジェクトです。
操作に成功した場合は、この要求の result プロパティの値は与えられたクエリーにマッチする全レコード (count が指定された場合は count の値まで) の値の Array になります。
例外
このメソッドは、以下の種類のいずれかの DOMException を投げる可能性があります。
TransactionInactiveErrorDOMException-
この
IDBIndexのトランザクションが実行中でないとき投げられます。 InvalidStateErrorDOMException-
この
IDBIndexが削除されたか取り除かれたとき投げられます。
引数 count が 0 から 2^32 - 1 の範囲 (両端を含む) 外のときは、TypeError 例外が投げられます。
例
const myIndex = objectStore.index("index");
const getAllRequest = myIndex.getAll();
getAllRequest.onsuccess = () => {
console.log(getAllRequest.result);
};
仕様書
| 仕様書 |
|---|
| Indexed Database API 3.0> # ref-for-dom-idbindex-getall①> |
ブラウザーの互換性
関連情報
- IndexedDB の使用
- トランザクションの開始:
IDBDatabase - トランザクションの使用:
IDBTransaction - キー範囲の設定:
IDBKeyRange - データの取得と変更:
IDBObjectStore - カーソルの使用:
IDBCursor - リファレンス例: To-do Notifications (動く例を見る)