我正在使用LokiJS,对于大多数部分来说都很好。除了我似乎无法从数据库中删除记录之外。

该发现使我获得了要删除的正确记录,但是在saveDatabase之后,remove()和findAndRemove()都没有将其删除。我究竟做错了什么?

(注意:我已经尝试过在loadDatabase(...)回调之外进行saveDatabase -没有更改。每当我重新运行它时,我以为我删除的记录仍然存在)

这是代码:dbName是文件的有效路径

var db = new loki(dbName);

db.loadDatabase({}, function (e) {

    var orders = db.getCollection("orders");

        console.log(orders.count() + " orders found... iterating");
        orders.find().forEach((v, i) => {
            console.log(i + "." + v.key + " " + v.places.display + " " + v.theme + " " + moment(v.date).format("DD MMM YYYY HH:mm"));
        });
    }

     let dKey = "some key that is valid";
        if (!dKey) {
            console.log("no key specified, returning");
            return;
        }
        console.log("deleting specific record " + dKey);
        let dObj = orders.find({ key: dKey });
        if (!dObj || dObj.length == 0) {
            console.log("no such record, returning");
            return;
        }
        console.log(dObj[0]);
        orders.remove(dObj[0]);
        db.saveDatabase((e) => {
            console.log("save complete");
        });
    }
});

最佳答案

试试:orders.chain().find({ key: dKey }).remove()

关于node.js - LokiJS-remove和findAndRemove不起作用(saveDatabase不保存),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41989892/

10-09 20:18