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

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 の定義
勧告  

ブラウザー実装状況

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応

24

23 — 57 webkit

あり

16

10 — 16 moz

101

44

15 — 44 webkit

7
Available in workers

24

23 — 57 webkit

あり37 ?

44

15 — 44 webkit

7
direction

24

23 — 24 webkit

12

16

10 — 16 moz

101157
key

24

23 — 24 webkit

12

16

10 — 16 moz

101157
primaryKey

24

23 — 24 webkit

12

16

10 — 16 moz

101157
source

24

23 — 24 webkit

12

16

10 — 16 moz

101157
advance

24

23 — 24 webkit

12

16

10 — 16 moz

101157
continue

24

23 — 24 webkit

12

16

10 — 16 moz

101157
continuePrimaryKey58 なし

51

10 — 51 moz

?4510.1
delete

24

23 — 24 webkit

12

16

10 — 16 moz

101157
update

24

23 — 24 webkit

12

16

10 — 16 moz

101157
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応

24

23 — 57 webkit

25

25 — 57 webkit

あり22

22

22 — 44 webkit

8

あり

あり — 7.0 webkit

Available in workers

24

23 — 57 webkit

25

25 — 57 webkit

あり37

あり

22 — 44 webkit

?

あり

あり — 7.0 webkit

direction あり あり あり22228 あり
key あり あり あり22228 あり
primaryKey あり あり あり22228 あり
source あり あり あり22228 あり
advance あり あり あり22228 あり
continue あり あり あり22228 あり
continuePrimaryKey5858 あり514510.17.0
delete あり あり あり22228 あり
update あり あり あり22228 あり

1. partial

関連情報

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

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