[英]How can I select the latest version of an object from a ForerunnerDb collection
[英]How do I permanently delete a collection in forerunnerdb?
我嘗試對for循環中的每個集合項使用remove(),這似乎是成功的。 但是,這些物品仍在收藏中。 如果可以通過JavaScript進行刪除,我將很高興將其完全刪除。
這是console.log中每個remove()之后的返回對象:
deleted ID1[object Object]
dbsetup.js:304 1 - deleted ID2[object Object]
dbsetup.js:304 2 - deleted ID1ee7978aa5ddc20[object Object]
dbsetup.js:304 3 - deleted ID2899af1e797ff00[object Object]
dbsetup.js:304 4 - deleted ID2234cd96dac8380[object Object]
dbsetup.js:304 5 - deleted ID348a5bcd5f0f600[object Object]
dbsetup.js:304 6 - deleted ID490930bb2589c80[object Object]
這是我使用先行者的remove()的函數:
function removeAllGames() {
var gameArray = games.find();
var gameID;
var deletedObject;
var len = gameArray.length;
for (var i=0;i<len;i++) {
gameID = gameArray[i]._id;
deletedObject = games.remove({
_id: gameID
});
console.log(i + " - " + "deleted ID" + gameID + deletedObject);
}
}
我將報告進度-感謝您的幫助!
ForerunnerDB在內存中運行。 這意味着,如果您從持久性存儲中加載數據,然后通過ForerunnerDB的CRUD方法(插入,更新,刪除)對其進行修改,則您正在修改內存中的數據。
然后,如果您希望新版本的數據覆蓋當前保存的數據,則需要調用.save()。
只是要清楚用法,collection.remove()將從集合中刪除所有文檔,但是直到以后您調用.save()時,它都不會將該刪除持久化到存儲中。
持久性存儲是ForerunnerDB的插件,而不是內置在核心中,因為ForerunnerDB的主要用途是作為處理JSON數據的內存存儲,並且某些用戶可能不希望持久性。 這就是為什么您必須調用.load()和.save()從持久性存儲中加載數據並將數據分別保存在那里的原因。
諸如insert()和remove()之類的CRUD調用正在與ForerunnerDB的核心通信,而load()和save()方法則與持久性插件通信。
(來源:我寫了ForerunnerDB和所有插件)。
我想到了! 我需要在remove()函數之后使用save()函數。 完成此操作后,項目將從集合中永久消失。 我仍然需要弄清楚如何刪除集合本身,但是現在這足以完成工作。
我建議查看forerunnerdb教程,而不僅僅是像我一樣依賴github上的文檔。 這些教程提供了有關如何正確保存的工作示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.