Dexie.js:获取bulkAdd()错误捕获中的失败数据记录

问题描述 投票:4回答:2

如果我使用bulkAdd()将blob添加到我的数据库中,则如果已经存在任何键,则抛出错误并说相同。

bulkAdd(): 127 of 127 operations failed. 
Errors: ConstraintError: Key already exists in the object store.

现在,我想要的是,如果数据库中已经存在任何密钥,则使用某些if条件(例如,如果它小于1)来更新与该密钥关联的数据。但是当我尝试console.log(error.failures)时,它只是显示消息而不是数据对象。谁能告诉我我们该怎么做?

node.js indexeddb dexie dexiejs
2个回答
2
投票

使用Table.bulkAdd(),如果已经存在主键,则操作将失败。

Table.add()

将对象添加到对象库。

Table.bulkAdd()

添加给定对象以进行存储。如果已经存在具有相同主键的对象,则该操作将失败,并使用错误对象调用返回的promise Remarks回调。

如果键重复,则可以使用catch()替换记录。

Table.put()

添加新的或替换对象库中的现有对象。

Table.bulkPut()

如果已经存在具有相同主键的对象,则将其替换为给定的对象。如果不存在,则将其添加。


0
投票

您可以使用Table.bulkPut()

如果密钥不可用,则会添加元素。如果可用,请更新值。而且它更快。

© www.soinside.com 2019 - 2024. All rights reserved.