YDN DB Удалить запись по идентификатору (IndexedDB)

Я использую YDN DB для IndexedDB и хочу удалить запись из хранилища объектов, используя ее идентификатор. Вот моя схема:

var personsSchema = {
name: "persons",
keyPath: "id",
autoIncrement: true,
indexes: [{
    name: "id",
    unique: true
}, {
    name: "firstname",
    unique: false,
    multiEntry: false
}, {
    name: "lastname",
    unique: false,
    multiEntry: false
}]
};

schema = {
    stores: [personsSchema]
};

var db = new ydn.db.Storage("xdb", schema);

Теперь у меня есть функция, которая удалит запись:

    function deleteEntry(id){
        var id = parseInt(id);
        var objectStore = "persons";
        var iterator = new ydn.db.ValueCursors(objectStore, "id", ydn.db.KeyRange.only(id));
        var mode = "readwrite";
        request = db.open(iterator, 1).then(function(cursor){
            cursor.clear();
        }, mode);
    }

Эта функция дает мне эту ошибку:

Uncaught ydn.error.ArgumentException: Second argument must be cursor range iterator.

Спасибо за ответы.

1 ответ

Решение

Так должно быть:

function deleteEntry(id){
    var id = parseInt(id);
    var objectStore = "persons";
    var iterator = new ydn.db.IndexValueCursors(objectStore, "id", ydn.db.KeyRange.only(id));
    var mode = "readwrite";
    request = db.open(function(cursor){
        cursor.clear();
    }, iterator, mode).then(function() {
        console.log('cleared')
    });
}

Но с тех пор id является первичным ключом, вам не нужно индексироваться, это должно быть просто:

function deleteEntry(id){
    var id = parseInt(id, 10);
    var keys = db.remove("persons", id);
}

Если id не является первичным ключом, этот следующий код выполняется немного более эффективно, так как он не возвращает значения записи без необходимости.

function deleteEntry(id){
    var id = parseInt(id);
    var objectStore = "persons";
    db.keys(objectStore, "id", ydn.db.KeyRange.only(id)).done(function(keys) { 
      db.remove(objectStore, keys);
    };
}

Я исправил пример API.

Другие вопросы по тегам