无法从Meteorjs中的Mongo数据库中删除项目

时间:2014-10-10 19:24:12

标签: javascript mongodb meteor handlebars.js meteorite

我在Meteorjs中创建了一个对象来保存N个骰子卷的数据库信息,然后使用把手#each iterator显示骰子。以下是我的一些代码:

全球Mongo系列:

Items = new Meteor.Collection('items');</code>

当我掷骰子时,这就是单击按钮时集合会发生的情况:

    //Don't want to bore you with all code, so here's just important parts...
    var randomNumber=Math.floor(Math.random() * numSides) +1);
    var numDice = 6;// It's really a variable passed in, but for here it's 6. 
    for (var i = 0; i < numDice; i++) {
              Items.insert(item: randomNumber)
    };

然后他们将信息显示为骰子,因为它显示我有CSS的数字,看起来像骰子。但是我在这里徘徊......无论如何,骰子滚动很棒,但是当我再次滚动时我想要清除骰子。现在,他们只是不断加起来。当我尝试使用任何方法删除Mongo DB Items时,它会崩溃我的应用程序。由于我不确定如何在浏览器中进行非常好的调试,我需要一些帮助,我会在这里问一下......

现在,我的主要问题是,当骰子再次滚动时,我想清除数据库并重新开始。我是JavaScript和Meteor的新手,来自Java&amp;&amp; Ruby土地,所以任何建议都非常感谢。

我已经尝试了

Items.removeIndexes(), 
Items.purge(), 
Items.remove({})

他们都冻结我的应用程序,我在#each迭代器中显示的数字仍然存在。我以为它会删除这些东西,并推动更改...没有???请帮忙。

代码在GitHub @ http://www.github.com/rabbitfighter81/DMware/

1 个答案:

答案 0 :(得分:1)

您应该使用remove方法,但如果您从客户端调用它,则每次调用只能删除一个文档,并且选择器必须引用文档_id字段。所以,这是一个删除客户端集合中所有文档的示例:

TheCollection.find().forEach(function(doc){
    TheCollection.remove(doc._id)
})