1

次のように作成されたオブジェクト ストアがあるとします。

IDBDatabase.createObjectStore(Name, {autoIncrement: true });

ここで、 を使用してそのオブジェクト ストアからオブジェクトを検索するindexとします。

IDBObjectstore.put()オブジェクトに関連付けられたアウトオブライン キーを取得して、 /で変更/削除できるようにする方法はありますIDBObjectstore.delete()か、またはカーソルを使用してオブジェクト ストアを反復処理する方法はありますか (いくつかの任意のプロパティに基づいて比較します)、cursor.update()/を使用していcursor.delete()ますか?

特定のキーを持つことのポイントは、オブジェクトストアに2つの同一のオブジェクトが存在する可能性があるため、オブジェクト自体のみが提供されている場合、ブラウザーはどのオブジェクトを提供するかを知ることができないためです。おそらく、最初にインデックスを使用して取得したため、インデックスを使用して、作業中のオブジェクトに関連付けられている行外のキーを取得する方法があるかもしれません。

4

2 に答える 2

2

配置時に生成されたアウトオブラインキーを保持する必要があります。成功要求イベントの結果にあります。

于 2015-06-02T01:05:38.710 に答える
2

データがデータストアに挿入されると、返されるイベントオブジェクトには、データの挿入に使用されたキーに関する情報が含まれます。を使用して取得できますevent.target.result。その時点で情報を収集できます。

インラインキーでもアウトオブラインキーでも、同じ方法で取得できます。

var transaction = DB_HANDLER.transaction([tableName], "readwrite");
var objectStore = transaction.objectStore(tableName);
var request = objectStore.add(data);

request.onsuccess = function(event) {
    console.log("Key used for inserting data = " + event.target.result);
};
于 2015-06-02T13:08:06.390 に答える