如何永久删除 forerunnerdb 中的集合?
How do I permanently delete a collection in 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);
}
}
我会报告我的进度 - 感谢您的帮助!
我想通了!我需要在 remove() 函数之后使用 save() 函数。执行此操作后,项目将从 collection 中永久消失。我仍然需要弄清楚如何删除 collection 本身,但现在这足以完成工作。
我建议查看 forerunnerdb 教程,而不是仅仅依赖 github 上的文档(就像我所做的那样)。这些教程提供了有关如何正确保存的工作示例。
ForerunnerDB 在内存中运行。这意味着如果您从持久存储加载数据,然后通过 ForerunnerDB 的 CRUD 方法(插入、更新、删除)修改它,您正在修改内存中的数据。
如果您希望新版本的数据覆盖当前保存的数据,您需要调用 .save()。
只是为了明确用法,collection.remove() 将从集合中删除所有文档,但它不会将删除保存到存储中,直到您之后调用 .save()。
持久存储是 ForerunnerDB 的一个插件,而不是内置到核心中,因为 ForerunnerDB 的主要用途是作为内存存储来处理 JSON 数据,一些用户可能不想要持久性。这就是为什么您必须调用 .load() 和 .save() 以分别从持久存储加载数据和保存数据的原因。
像 insert() 和 remove() 这样的 CRUD 调用与 ForerunnerDB 的核心对话,而 load() 和 save() 方法与持久性插件对话。
(来源:我写了 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);
}
}
我会报告我的进度 - 感谢您的帮助!
我想通了!我需要在 remove() 函数之后使用 save() 函数。执行此操作后,项目将从 collection 中永久消失。我仍然需要弄清楚如何删除 collection 本身,但现在这足以完成工作。
我建议查看 forerunnerdb 教程,而不是仅仅依赖 github 上的文档(就像我所做的那样)。这些教程提供了有关如何正确保存的工作示例。
ForerunnerDB 在内存中运行。这意味着如果您从持久存储加载数据,然后通过 ForerunnerDB 的 CRUD 方法(插入、更新、删除)修改它,您正在修改内存中的数据。
如果您希望新版本的数据覆盖当前保存的数据,您需要调用 .save()。
只是为了明确用法,collection.remove() 将从集合中删除所有文档,但它不会将删除保存到存储中,直到您之后调用 .save()。
持久存储是 ForerunnerDB 的一个插件,而不是内置到核心中,因为 ForerunnerDB 的主要用途是作为内存存储来处理 JSON 数据,一些用户可能不想要持久性。这就是为什么您必须调用 .load() 和 .save() 以分别从持久存储加载数据和保存数据的原因。
像 insert() 和 remove() 这样的 CRUD 调用与 ForerunnerDB 的核心对话,而 load() 和 save() 方法与持久性插件对话。
(来源:我写了 ForerunnerDB 和所有插件)。