このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
IDBCursorWithValue
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
IndexedDB API のIDBCursorWithValue インターフェイスは、データベース内の複数のレコードを走査・反復するのに用いるカーソルを表します。value プロパティがある以外は、IDBCursor と同じです。
カーソルは、反復対象のインデックスまたはオブジェクトストアを表す反復元を持ちます。さらに、範囲内での位置を持ち、レコードキーの順番の昇順もしくは降順に動きます。カーソルにより、アプリケーションはカーソルの範囲の全レコードを非同期で処理できます。
同時に保持できるカーソルの数は無制限です。あるカーソルを表すとき、常に同じIDBCursorWithValue オブジェクトを取得できます。操作は対象のインデックスまたはオブジェクトストアで行われます。
メモ: この機能はウェブワーカー内で利用可能です。
In this article
インスタンスメソッド
親インターフェイスのIDBCursor からメソッドを継承します。
インスタンスプロパティ
親インターフェイスのIDBCursor からプロパティを継承します。
IDBCursorWithValue.value読取専用現在のカーソルの値を返します。
例
この例では、トランザクションを作成し、オブジェクトストアを取得し、カーソルを用いてオブジェクトストア内の全レコードを走査します。カーソルを用いる場合、キーでデータを選択する必要は無く、単に全部を取得できます。また、ループ中のそれぞれの繰り返しにおいて、カーソルオブジェクトが指している現在のレコードのデータをcursor.value.foo で取得できます。動く例全体は、IDBCursor example を参照してください。(動く例を見る)
function displayData() { const transaction = db.transaction(["rushAlbumList"], "readonly"); const objectStore = transaction.objectStore("rushAlbumList"); objectStore.openCursor().onsuccess = (event) => { const cursor = event.target.result; if (cursor) { const listItem = document.createElement("li"); listItem.textContent = `${cursor.value.albumTitle}, ${cursor.value.year}`; list.appendChild(listItem); cursor.continue(); } else { console.log("全エントリーを表示しました。"); } };}仕様書
| Specification |
|---|
| Indexed Database API 3.0> # idbcursorwithvalue> |
ブラウザーの互換性
関連情報
- IndexedDB の使用
- トランザクションの開始:
IDBDatabase - トランザクションの使用:
IDBTransaction - キーの範囲の設定:
IDBKeyRange - データの取得と変更:
IDBObjectStore - カーソルの使用:
IDBCursor - リファレンス例:To-do Notifications (動く例を見る)