Dexie.js: получение записей данных об ошибках в улове ошибок bulkAdd()
Если я добавляю blob-объект в свою базу данных с помощью bulkAdd(), то, если какой-либо ключ уже существует, он выдает ошибку, говоря то же самое.
bulkAdd(): 127 of 127 operations failed.
Errors: ConstraintError: Key already exists in the object store.
Теперь я хочу, чтобы если какой-либо ключ уже существует в базе данных, обновите данные, связанные с этим ключом, используя какое-либо условие if (например, если оно меньше 1).
Но когда я пытаюсь выполнить console.log(error.failures), он просто показывает сообщения, а не объект данных.
Кто-нибудь может сказать мне, как мы можем это сделать?
2 ответа
С Table.bulkAdd()
операция завершится неудачно, если первичный ключ уже существует.
Table.add()
Добавляет объект в хранилище объектов.
Замечания
Добавить данный объект в хранилище. Если объект с таким же первичным ключом уже существует, операция завершится ошибкой и будет вызван обратный вызов обещания catch () с объектом ошибки.
Вы можете использовать Table.bulkPut()
для замены записей в случае дублирования ключей.
Table.put()
Добавляет новый или заменяет существующий объект в хранилище объектов.
Замечания
Если объект с таким же первичным ключом уже существует, он будет заменен данным объектом. Если его не существует, он будет добавлен.
Вы можете использовать table.bulkPut().
Он добавляет элемент, если ключ недоступен. Если доступно, обновите значение. И это быстрее.