gpt4 book ai didi

javascript - 如何只包含没有值的键,或者如何将不同的值放入 IndexedDb 中?

转载 作者:行者123 更新时间:2023-12-03 03:01:54 25 4
gpt4 key购买 nike

我需要将不同的字符串放入 IndexedDb 中。我可以将它们作为没有值的键(对于indexedDb来说相当新,所以甚至不知道这是否可能)。现在的问题是,每次读取这些字符串时,它们都会被重复放入 IndexDb 中。不想编写另一个方法来检查这些值是否已经存在,以保持方法的可重用性。我相信应该有一种方法可以重写 upgradeDb.createObjectStore('categories', { autoIncrement: true }); 来做到这一点,只是找不到方法。我的代码:

使用表创建数据库:

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

写入数据库:

putArrayToDb = (tableName, arrayToPut) => {
if (this.dbPromise) {
this.dbPromise.then(db => {
if (!db) return;

var tx = db.transaction(tableName, 'readwrite');
var store = tx.objectStore(tableName);
arrayToPut.map(arrayItem => {
store.put(arrayItem);
});
})
}
}

putArrayToDb('categories', ["value1", "value2", "value3"]);

database gets filled with values every refresh

提前致谢。

最佳答案

由于您想使用字符串作为键,因此 autoIncrement 不是您想要的 - 它会为您生成键。

在定义对象存储时删除autoIncrement选项,并简单地使用显式键和虚拟值(例如true):

var DUMMY_VALUE = true;

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

关于javascript - 如何只包含没有值的键,或者如何将不同的值放入 IndexedDb 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47343584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com