-
-
Notifications
You must be signed in to change notification settings - Fork 641
WriteableCollection.delete()
Deletes all objects in the query.
collection.delete()
Promise where result is an array of arrays [key, value] of all deleted objects.
If any object fails to delete, entire operation will fail and transaction will be aborted.
If you catch the returned Promise, transaction will not abort, and you recieve an instance of Dexie.MultiDeleteError containing the following properties:
failures | Array of Error objects of all errors that have occurred |
deletedRecords | Array of successfully deleted records. Each record is an array of [key, object] |
If you do NOT catch the returned Promise, and an error occur, the transaction will be aborted.
If you want to log the error but still abort the transaction, you must encapsulate the operation in a transaction() block and catch the transaction instead. It is also possible to catch the operation and call transaction.abort() in the catch() clause.
db.orders.where("state").anyOf("finished", "discarded").or("date").below("2014-02-01").delete()
.then(function (deletedOrders) {
console.log( JSON.stringify(deletedOrders) ):
});
This method is equivalent to the following:
var deletedRecords = [];
collection.each(function (item, cursor) {
deletedRecords.push([cursor.key, cursor.value]);
cursor.delete();
}).then (function () {
return deletedRecords;
});
Dexie.js - minimalistic and bullet proof indexedDB library