この翻訳は不完全です。英語から この記事を翻訳 してください。

IndexedDB APIIDBCursor インターフェイスはデータベースの複数レコードを横断したり繰り返すためのカーソルです。

このカーソルはどのインデックスやオブジェクトをループしているかを示す元です。これは範囲内の位置を示す持ち、レコードのキー順に増/減して動きます。カーソルはアプリケーションからカーソル範囲内の全レコードに非同期に処理できるようにします。

一度に無制限の数のカーソルを持つことができます。あるカーソルを表す同一の IDBCursor オブジェクトを取得できます。操作はインデックスやオブジェクトストアに対して実行されます。

註: この機能は Web Workers 内で利用可能です。

プロパティ

IDBCursor.source 読取専用
カーソルが繰り返しているIDBObjectStoreIDBIndex を返します。この関数は、カーソルが現在繰り返されていたり、繰り返しが終わりを過ぎたり、トランザクションがアクティブでなくても、null や例外を返しません。
IDBCursor.direction 読取専用
カーソルの横断の向きを返します。取りうる値については Constants を見てください。
IDBCursor.key 読取専用
カーソル位置のレコードのキーを返します。カーソルが範囲外の場合、undefined にセットされます。カーソルキーはあらゆるデータ型となりえます。
IDBCursor.value 読取専用
カーソル位置のレコードの値を返します。カーソルの値はあらゆるデータ型となりえます。
IDBCursor.primaryKey 読取専用
カーソルの現在有効な主キーを返します。カーソルが現在繰り返されていたり範囲外で繰り返されていた場合、これは undefined にセットされます。カーソルの主キーはあらゆるデータ型となりえます。

メソッド

IDBCursor.advance()
Sets the number times a cursor should move its position forward.
IDBCursor.continue()
Advances the cursor to the next position along its direction, to the item whose key matches the optional key parameter.
IDBCursor.continuePrimaryKey()
Sets the cursor to the given index key and primary key given as arguments.
IDBCursor.delete()
Returns an IDBRequest object, and, in a separate thread, deletes the record at the cursor's position, without changing the cursor's position. This can be used to delete specific records.
IDBCursor.update()
Returns an IDBRequest object, and, in a separate thread, updates the value at the current position of the cursor in the object store. This can be used to update specific records.

Constants

非推奨 Gecko 13 (Firefox 13 / Thunderbird 13 / SeaMonkey 2.10)
この機能はウェブ標準から削除されました。まだ対応しているプラウザーがあるかもしれませんが、ゆくゆくはなくなるものです。使用を避け、できれば既存のコードを更新してください。このページの下部にあるブラウザーの対応を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

これらの constants は利用できません — Gecko 25 で削除されました。代わりに直接 string constants を使う必要があります。(バグ 891944)

  • NEXT : "next" : The cursor shows all records, including duplicates. It starts at the lower bound of the key range and moves upwards (monotonically increasing in the order of keys).
  • NEXTUNIQUE : "nextunique" : The cursor shows all records, excluding duplicates. If multiple records exist with the same key, only the first one iterated is retrieved. It starts at the lower bound of the key range and moves upwards.
  • PREV : "prev" : The cursor shows all records, including duplicates. It starts at the upper bound of the key range and moves downwards (monotonically decreasing in the order of keys).
  • PREVUNIQUE : "prevunique" : The cursor shows all records, excluding duplicates. If multiple records exist with the same key, only the first one iterated is retrieved. It starts at the upper bound of the key range and moves downwards.

In this simple fragment we create a transaction, retrieve an object store, then use a cursor to iterate through all the records in the object store. The cursor does not require us to select the data based on a key; we can just grab all of it. Also note that in each iteration of the loop, you can grab data from the current record under the cursor object using cursor.value.foo. For a complete working example, see our IDBCursor example (view example live.)

function displayData() {
  var transaction = db.transaction(['rushAlbumList'], "readonly");
  var objectStore = transaction.objectStore('rushAlbumList');

  objectStore.openCursor().onsuccess = function(event) {
    var cursor = event.target.result;
    if(cursor) {
      var listItem = document.createElement('li');
      listItem.innerHTML = cursor.value.albumTitle + ', ' + cursor.value.year;
      list.appendChild(listItem);  

      cursor.continue();
    } else {
      console.log('Entries all displayed.');
    }
  };
}

仕様

仕様書 策定状況 コメント
Indexed Database API
cursor の定義
勧告  

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung Internet
基本対応Chrome 完全対応 24
完全対応 24
未対応 23 — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 ありFirefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 44
完全対応 44
未対応 15 — 44
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Safari 完全対応 7WebView Android 完全対応 あり
完全対応 あり
未対応 ? — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Chrome Android 完全対応 25
完全対応 25
未対応 25 — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge Mobile 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 22
完全対応 22
未対応 22 — 44
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
完全対応 あり
未対応 ? — 7.0
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Available in workersChrome 完全対応 24
完全対応 24
未対応 23 — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 ありFirefox 完全対応 37IE ? Opera 完全対応 44
完全対応 44
未対応 15 — 44
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Safari 完全対応 7WebView Android 完全対応 あり
完全対応 あり
未対応 ? — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Chrome Android 完全対応 25
完全対応 25
未対応 25 — 57
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge Mobile 完全対応 ありFirefox Android 完全対応 37Opera Android 完全対応 あり
完全対応 あり
未対応 22 — 44
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Safari iOS ? Samsung Internet Android 完全対応 あり
完全対応 あり
未対応 ? — 7.0
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
directionChrome 完全対応 24
完全対応 24
未対応 23 — 24
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 22Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
keyChrome 完全対応 24
完全対応 24
未対応 23 — 24
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 22Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
primaryKeyChrome 完全対応 24
完全対応 24
未対応 23 — 24
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 22Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
sourceChrome 完全対応 24
完全対応 24
未対応 23 — 24
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 22Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
advanceChrome 完全対応 24
完全対応 24
未対応 23 — 24
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 22Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
continueChrome 完全対応 24
完全対応 24
未対応 23 — 24
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 22Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
continuePrimaryKeyChrome 完全対応 58Edge 未対応 なしFirefox 完全対応 51
完全対応 51
未対応 10 — 51
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE ? Opera 完全対応 45Safari 完全対応 10.1WebView Android 完全対応 58Chrome Android 完全対応 58Edge Mobile 完全対応 ありFirefox Android 完全対応 51Opera Android 完全対応 45Safari iOS 完全対応 10.1Samsung Internet Android 完全対応 7.0
deleteChrome 完全対応 24
完全対応 24
未対応 23 — 24
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 22Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり
updateChrome 完全対応 24
完全対応 24
未対応 23 — 24
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12Firefox 完全対応 16
完全対応 16
未対応 10 — 16
接頭辞付き
接頭辞付き moz のベンダー接頭辞が必要
IE 完全対応 10
補足
完全対応 10
補足
補足 partial
Opera 完全対応 15Safari 完全対応 7WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 22Opera Android 完全対応 22Safari iOS 完全対応 8Samsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明
実装ノートを参照してください。
実装ノートを参照してください。
使用するには、ベンダー接頭辞または異なる名前が必要です。
使用するには、ベンダー接頭辞または異なる名前が必要です。

関連情報

ドキュメントのタグと貢献者

このページの貢献者: Uemmra3, fscholz, Tanooky, jpmedley
最終更新者: Uemmra3,