我需要将字符串放入不同的IndexedDb中。我可以将它们作为没有价值的密钥(对于indexedDb来说很新,所以甚至不知道这是否可行)。现在的问题是,每次读取这些字符串时,它们都会重复放入IndexDb。不想编写另一种方法来检查这些值是否已经存在,以保持方法的可重用性。我相信应该有一种方法可以重写01234
来做到这一点,只是无法找到方法。我的代码:
使用表格创建数据库:
upgradeDb.createObjectStore('categories', { autoIncrement: true });
写入数据库:
function idbOpen() {
return idb.open('greedy', 1, upgradeDb => {
upgradeDb.createObjectStore('categories', { autoIncrement: true });
});
}
提前致谢。
答案 0 :(得分:1)
由于您希望将字符串用作键,autoIncrement
不是您想要的 - 它会为您生成键。
在定义对象库时删除autoIncrement
选项,只需使用显式键和虚拟值(例如true
):
var DUMMY_VALUE = true;
arrayToPut.map(arrayItem => {
store.put(/*value=*/DUMMY_VALUE, /*key=*/arrayItem);
});