2013-03-06 78 views
3

我使用IndexedDb来存储一些数据以供离线使用。我需要确保在一个对象库中没有两个对象具有相同的特定属性。我可以在IndexedDb对象库中指定一个'唯一一起'约束吗?

对于离存储电影的细节在我的对象存储的对象是这样:

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

现在,当我添加数据我想dont't 2个物体与同{片名,导演,作家} 。 从我所探索的,我可以在一个字段上创建一个索引,并为此索引指定unique = true。这样,没有2个对象可以为这个特定的字段具有相同的值。 但是,有没有办法在对象库上指定这些'唯一一起'字段。

回答

3

正如我在specs的最新版本中看到的,这应该是可能的。你可以通过传递一个数组作为keypath来做到这一点。我没有尝试过我自己,但这应该是解决方案。我建议你使用firefox的夜间版本来测试这个。这将使您有最大的可能性来实施工作。

objectstore.createIndex("indexname", ["title", "director", "writer"], { unique: true }); 
+0

据我知道这是不是IE10支持,但可能你不用担心IE浏览器 - http://stackoverflow.com/questions/14283257/indexeddb-compound-key-ie10 – Robesz 2013-03-21 09:53:11