3

IndexedDb を使用して、オフラインで使用するデータを保存しています。objectstore で 2 つのオブジェクトが同じ特定の属性を持っていないことを確認する必要があります。

たとえば、映画の詳細を保存するオブジェクトストアのオブジェクトは次のとおりです。

{title : value1, director : value2, writer : value3, revenue : value4} 

ここで、データを追加するときに、同じ {title , director, writer} を持つ 2 つのオブジェクトは必要ありません。私が調査したことから、フィールドにインデックスを作成し、このインデックスに unique = true を指定できます。このようにして、2 つのオブジェクトがこの特定のフィールドに対して同じ値を持つことはできません。しかし、オブジェクトストアでこれらの「一意の」フィールドを指定する方法はありますか?

4

1 に答える 1

3

仕様の最新バージョンでわかるように、これは可能であるはずです。これを行うには、配列をキーパスとして渡します。自分で試したことはありませんが、これが解決策になるはずです。これをテストするには、firefox のナイトリー ビルドを使用することをお勧めします。これにより、実装が機能する可能性が最も高くなります。

objectstore.createIndex("indexname", ["title", "director", "writer"], { unique: true });
于 2013-03-06T13:35:27.803 に答える