我正在使用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/