gpt4 book ai didi

Dexie.js-table.delete(id)不适用于逐行删除

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

我只是从Dexie开始,而且我似乎还没来得及。

我有一个小型数据库(少于1000行),一旦我知道该行已发送到远程API,便试图一一删除每一行。
我还可以成功保存到表(由ID和存储序列化对象的列定义)

这是我的代码:

if (online) {
//we query the db and send each event
database.open()
let allEvents = database.events.toCollection()
let total = allEvents.count(function (count) {
console.log(count + ' events in total')
//a simple test to ensure we're seeing the right number of records
})
allEvents.each(function(thisEvent){
//push to remote API
console.log('deleting ' + thisEvent.id)
database.events.delete(thisEvent.id) //<= this doesn't seem to be working
})
}

除最终的delete语句外,所有其他操作均如此。
关于如何解决此问题的任何想法?对我来说重要的是逐行删除。

提前致谢!

最佳答案

我遇到了同样的问题,Eugenia Pais的回答对我不起作用。因此,经过一些测试,我发现问题出在变量的类型上:我使用的是字符串,但是需要一个数字,因此这就是我的解决方法:

function removeRow (primaryKey) {
primaryKey = parseInt(primaryKey);
databaseName.tableName.where('primaryKey').equals(primaryKey).delete().then(function(deleteCount) {
console.log ("Deleted " + deleteCount + " rows");
}).catch(function(error) {
console.error ("Error: " + error);
});

因此请注意,您使用数字作为参数。

关于Dexie.js-table.delete(id)不适用于逐行删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46497137/

25 4 0