LokiJS - 删除和查找和删除不起作用(保存数据库不保存)



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

查找为我提供了要删除的正确记录,但是在保存数据库后,删除()和删除()都没有找到和删除()删除它。我做错了什么?

(注意:我已经尝试在loadDatabase(...)回调之外保存数据库 - 没有变化。 每当我重新运行它时,我认为我删除的记录仍然存在)

代码如下: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()

我在使用 lokijs 时遇到了同样的问题,所以把它放在这里,以便它可以帮助将来寻找相同问题的其他任何人。

我试图在数据库中查找具有特定$loki值的记录,但我得到一个空的结果集。然后我试了这个。 data.chain().find({"$loki":{$aeq:serial}}).remove().data() .在这里,data是我的数据库实例,serial是我一直在寻找并传递给find()$loki值。似乎 lokijs 将它们存储为字符串,这就是$aeq工作的原因,我能够找到并删除所需的记录

最新更新