【问题标题】:Dexie.js: get failures data records in bulkAdd() error catchDexie.js:在 bulkAdd() 错误捕获中获取失败数据记录
【发布时间】:2020-07-09 00:56:18
【问题描述】:

如果我使用 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


    【解决方案1】:

    您可以使用table.bulkPut()

    如果键不可用,它会添加元素。如果可用,更新值。而且速度更快。

    【讨论】:

      【解决方案2】:

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

      Table.add()

      将对象添加到对象存储中。

      Remarks

      将给定的对象添加到存储中。如果已经存在具有相同主键的对象,则操作将失败并返回promise catch() 回调将与错误对象一起调用。

      您可以使用Table.bulkPut()在重复键的情况下替换记录。

      Table.put()

      在对象存储中添加新对象或替换现有对象。

      Remarks

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-30
        • 1970-01-01
        • 2017-03-27
        • 1970-01-01
        • 1970-01-01
        • 2017-03-20
        • 2011-11-25
        • 1970-01-01
        相关资源
        最近更新 更多