在Meteor中发布到客户端之前转换字段

时间:2016-01-22 04:09:59

标签: javascript node.js meteor

我在Meteor中有一个测验应用程序。

我有字段correctAnswerswrongAnswers

是否有可能将洗牌后的数组中的正确答案和错误答案发布给客户?

现在,用户可以打开他的控制台并输入Questions.find().fetch()并查看正确答案。

另一种选择当然是将所有答案(错误和正确)存储在一个数组中,并将正确答案的索引保存在另一个字段中,而不是填充到客户端,但我更想要一个更直观的数据结构

1 个答案:

答案 0 :(得分:0)

您可以在同一个集合上创建两个出版物:一个仅发布没有答案的问题,另一个发布已回答问题的答案。 Meteor将在客户端上联合这些数据,以便您可以一致地查询集合,但基本上您必须推迟向客户端推送答案。

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}});
});