我在Meteor中有一个测验应用程序。
我有字段correctAnswers
和wrongAnswers
。
是否可以将经过改组的正确答案和错误答案发布到客户端?
现在,用户只需打开控制台并输入Questions.find().fetch()
即可查看正确答案。
当然,另一种选择是将所有答案(错误和正确)存储在一个数组中,并将正确答案的索引保留在另一个字段中,该字段未填充到客户端,但我希望有一个更直观的数据结构。
最佳答案
您可以在同一集合上创建两个出版物:一个仅发布没有答案的问题,而另一个则发布已经回答的问题的答案。流星将在客户端上合并这些数据,以便您可以一致地查询集合,但从本质上讲,您必须推迟将答案推送到客户端。
Meteor.publish('questionsOnly',function(){
return Questions.find({},{fields: {questionText: 1}});
});
Meteor.publish('answersOnly',function(answeredQuestions){
return Questions.find({_id: {$in: answeredQuestions}},{fields: {correctAnswers: 1, wrongAnswers: 1}});
});