簡體   English   中英

如何永久刪除forerunnerdb中的集合?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM