【发布时间】:2016-02-24 11:09:59
【问题描述】:
我花了好几个小时寻找这个,只是通过反复试验,我终于找到了解决方案。将其记录在 Stack Overflow 中以供将来的搜索者使用。
问:
如何在 indexeddb 中创建复合键?
在 indexeddb 中使用以下方法在对象存储中创建键:
var db;
var openRequest = indexedDB.open('myDB', 1);
openRequest.addEventListener('error', () => {
console.error('Unable to open db');
});
openRequest.addEventListener('upgradeneeded', function(event){
var store = db.createObjectStore('myStore',
{keyPath: /* composite key */ }
);
});
openRequest.addEventListener('success', function(){
db = openRequest.result;
});
我尝试放置对象,多次定义,如何创建复合键,或者这是 API 的限制?
注意:如果您正在寻找如何查询使用范围的复合键,请查看this 帖子
【问题讨论】:
-
@Josh 虽然引用的帖子确实谈到了复合索引,但它主要关注 IDBKeyRange 在选择一系列元素时。这篇文章也没有解释如何为 Indexeddb 对象存储创建复合主键,因此我相信这篇文章不是重复的。
-
是的,绝对不是重复的。这是关于使用复合
keyPath创建(和填充)对象存储;引用的主题是关于从此类商店中提取 项。两者相得益彰,非常有效。他们在一起非常有帮助;正如 SnareChops 所说,这没有很好的记录(即使是四年后!)。
标签: indexeddb composite-primary-key