Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 我需要帮助找到一种方法来精确计算MongoDB数组_Meteor - Fatal编程技术网

Meteor 我需要帮助找到一种方法来精确计算MongoDB数组

Meteor 我需要帮助找到一种方法来精确计算MongoDB数组,meteor,Meteor,我试图解决一些逻辑问题,使用iron router和MongoDB的_id迭代正确的页面 到目前为止,一切顺利。除最后一部分外,以下代码中的所有内容都正常工作: Template.question.events({ "click .button": function(e){ e.preventDefault; var init =""; for (var i = 0; i < document.getElementsByName("choices").

我试图解决一些逻辑问题,使用iron router和MongoDB的_id迭代正确的页面

到目前为止,一切顺利。除最后一部分外,以下代码中的所有内容都正常工作:

   Template.question.events({
  "click .button": function(e){
    e.preventDefault;

    var init ="";

    for (var i = 0; i < document.getElementsByName("choices").length; i++){

      if (document.getElementsByName("choices")[i].checked){
        init = document.getElementsByName("choices")[i].value;
      }
    }

    var id = "";

    var currentId = this._id;
  Answers.insert({answer: init}, function(error, result){
        if (error){
          console.log("error: " + error);
        } else if (result){
          id = result;

          var solution = Answers.findOne({_id: id}, {answer: 1});
          var quizSubmission = Quiz.findOne({_id: currentId},{answer:1});


          if(solution.answer === quizSubmission.answer){
              counter++;
          }
        }

      });

      console.log(this._id);

      var queue = Quiz.find().fetch();
      compare.unshift(this._id);

      for(var i = 0; i < queue.length; i++){

        if(! _.contains(compare, queue[i]._id)){
        result = queue[i]._id;
      } else if (queue.length === 0){
        console.log("Loading scores...");
      }
      }
      console.log(compare);

      Router.go("question", {_id: result});
  }

});
最后一部分是else if queue.length==0部分,这给我带来了麻烦,因为在每次事件处理程序迭代之后,我从MongoDB调用的fetch.find方法都会重置为原始项目数,而不是理想情况下比上一次迭代少一个项目


我的问题是,有没有办法在不重置为0的情况下给出MongoDB数组的长度?可能是制作Database.find.fetch数组临时副本的一种方法?我希望我的问题有意义。

您能更改您的测验。查找查询以简单地排除已完成的项目吗?你的模型支持吗?如果没有,它应该这样做。你把问题随机化了,对吗?然后从尚未完成的项目中进行选择?@MichelFloyd我会调查的。是的,问题是随机的,而我将当前问题的id放入一个空数组中,该数组保存所有已回答的问题。我将研究如何将其集成到find查询中。谢谢你的回复。