2017-02-01 16 views
1

私はLokiJSを使用しています。ほとんどの部分で問題ありません。私はデータベースからレコードを削除することはできません。LokiJS - removeとfindAndRemoveは機能しません(saveDatabaseは保存しません)

findは私に削除する正しいレコードを取得しますが、removeAndRemove()はsaveDatabaseの後に削除しないでください。私は間違って何をしていますか?

(注:私は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"); 
     }); 
    } 
}); 

答えて

1

試してみてください。orders.chain().find({ key: dKey }).remove()

関連する問題