javascript - 如何永久删除forerunnerdb中的集合?

标签 javascript mongodb forerunnerdb

我尝试在 for 循环中对每个集合项使用remove(),这似乎是成功的。然而,这些元素仍然在收藏中。如果有办法通过 JavaScript 来完成此操作,我将很乐意完全删除该集合。

这是每次remove()之后返回的对象 - 在console.log中:

 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 和所有插件)。

关于javascript - 如何永久删除forerunnerdb中的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37198231/

相关文章:

javascript - 如何按标点符号分割字符串,忽略数字中的句点

javascript - Mongodb 从 ObjectId 获取 3 字节计数器

javascript - 如何为 VueJS 创建单条目 JS 文件

javascript - jQuery如何过滤具有特定数据属性的元素

node.js - 确保mongodb索引唯一

forerunnerdb - 新的 ForerunnerDB() 命令后现有的 ForerunnerDB 数据库被清除

javascript - 如何从 ForerunnerDb 集合中选择对象的最新版本

angularjs - 将 forerunnerDb 引导到 angular-electron 应用程序中

javascript - 隐藏元素直到加载完成(ng-cloak 不是我需要的)

mongodb - Sitecore 分析跟踪器数据