Meteor 我需要帮助找到一种方法来精确计算MongoDB数组
我试图解决一些逻辑问题,使用iron router和MongoDB的_id迭代正确的页面 到目前为止,一切顺利。除最后一部分外,以下代码中的所有内容都正常工作: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").
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查询中。谢谢你的回复。