如何只有没有值的密钥或如何将不同的值放入IndexedDb?

时间:2017-11-17 05:00:16

标签: javascript key indexeddb

我需要将字符串放入不同的IndexedDb中。我可以将它们作为没有价值的密钥(对于indexedDb来说很新,所以甚至不知道这是否可行)。现在的问题是,每次读取这些字符串时,它们都会重复放入IndexDb。不想编写另一种方法来检查这些值是否已经存在,以保持方法的可重用性。我相信应该有一种方法可以重写01234来做到这一点,只是无法找到方法。我的代码:

使用表格创建数据库:

upgradeDb.createObjectStore('categories', { autoIncrement: true });

写入数据库:

function idbOpen() {
    return idb.open('greedy', 1, upgradeDb => {
        upgradeDb.createObjectStore('categories', { autoIncrement: true });
    });
}

database gets filled with values every refresh

提前致谢。

1 个答案:

答案 0 :(得分:1)

由于您希望将字符串用作键,autoIncrement不是您想要的 - 它会为您生成键。

在定义对象库时删除autoIncrement选项,只需使用显式键和虚拟值(例如true):

var DUMMY_VALUE = true;

arrayToPut.map(arrayItem => {
    store.put(/*value=*/DUMMY_VALUE, /*key=*/arrayItem);
});