繁体   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