【问题标题】:Can't delete items from Mongo Database in Meteorjs无法从 Meteorjs 中的 Mongo 数据库中删除项目
【发布时间】:2014-12-06 01:12:39
【问题描述】:

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

全球 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 && Ruby 领域,因此非常感谢任何建议。

我试过了

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

它们都只是冻结了我的应用程序,而我在#each 迭代器中显示的数字仍然存在。我以为它会删除这些东西,然后推送更改……不???请帮忙。

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

【问题讨论】:

    标签: javascript mongodb meteor handlebars.js meteorite


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的快速回复。到目前为止,JS 社区非常好。没有菜鸟打电话或任何东西。我曾经是粗鲁的人,所以谢谢你,我会尝试摸索它并让你知道它是否有效......另外,我知道 Meteor 文档,车把文档,但还有其他您建议更好地掌握这些事情的好资源,因为我宁愿阅读而不是提出问题,但是,现在出版的大多数 Meteor 书籍都已过时(即大约 2012 年使用路由器,而不是铁路由器等。 .. 很多不同,而且我找到的书都不再适用了)。
    • @JoshuaMichael,我建议您通读文档;这会给你一个提示,你可以在 Meteor 中做什么。但也请查看the learn page on meteors website,尤其是 Discover Meteor 和 EventedMind。
    • 再次感谢您。佩佩 L-G。你的解决方案就像一个魅力:)
    猜你喜欢
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多