我尝试对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]下面是我的函数,它使用了forerunner的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);
}
}我会报告我的进展-谢谢你的帮助!
发布于 2016-05-12 22:28:29
我想出来了!我需要在remove()函数之后使用save()函数。执行此操作后,将永久离开集合中的项。我仍然需要弄清楚如何删除集合本身,但就目前而言,这足以完成工作。
我建议查看前身b教程,而不仅仅是依赖于github上的文档(就像我以前那样)。本教程给出了如何正确保存的工作示例。
发布于 2016-06-15 09:56:30
ForerunnerDB在内存中工作。这意味着,如果从持久存储加载数据,然后通过ForerunnerDB的CRUD方法(插入、更新、删除)修改数据,则需要修改内存中的数据。
如果希望新版本的数据覆盖当前持久化的数据,则需要调用.save()。
为了明确使用情况,collection.remove()将从集合中删除所有文档,但在调用.save()之后,它不会将该删除保存到存储中。
持久存储是ForerunnerDB的插件,而不是内置到核心的插件,因为ForerunnerDB的主要用途是作为处理JSON数据的内存存储,一些用户可能不希望持久化。这就是为什么您必须调用.load()和.save()分别从持久存储加载数据和将数据保存在那里。
CRUD调用(如insert()和remove() )正在与ForerunnerDB的核心对话,而load()和save()方法则在与持久性插件对话。
(来源:我写了ForerunnerDB和所有插件)。
https://stackoverflow.com/questions/37198231
复制相似问题