尝试在 Loki JS 中动态添加他们拥有的人和水果的条目,但我不断收到 Trying to update unsynced document. Please save the document first by using insert() or addMany()
错误。有人对如何成功做到这一点有任何想法吗?
我已经记录了传入的值,它们与数据库中已经找到的值相匹配。
const loki = require('lokijs');
const db = new loki('loki.json');
const peopleAndFruits = db.addCollection('peopleAndFruits');
peopleAndFruits.insert({ dbname: 'person', fruits: 10 });
const createOrInsertUserToDb = (name, fruitNumber) => {
const data = peopleAndFruits.find({ dbname: name });
console.log('db entry before updated ', data[0].dbname);
if (data[0].dbname !== name) {
// console.log('this person did not exist in our database');
peopleAndFruits.insert({ dbname: name, fruits: fruitNumber });
} else {
// console.log('previously existing entry');
peopleAndFruits.update({
dbname: data[0].dbname,
fruits: Number(fruitNumber + data.fruits),
});
}
// console.log('data after update or insert', peopleAndFruits.data);
db.saveDatabase();
};
最佳答案
我偶然发现了这个问题,问题是当调用 peopleAndFruits.update
时,您传递的文档需要是集合中的现有项目,这意味着它必须有一个 $loki
id。就你而言,你可以选择
peopleAndFruits.update({
...data[0],
fruits: +fruitNumber + fruits;
});
或
peopleAndFruits.findAndUpdate({$loki: data[0].$loki}, item => {
item.fruits = +fruitNumber + fruits;
});
关于javascript - 尝试更新 LokiJS db 但出现 'Trying to update unsynced document' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56786218/