2016-01-22 61 views
1

我在流星中有一个测验应用程序。将流程发布到流星客户端之前进行转换

我有字段correctAnswerswrongAnswers

是否可以在洗牌数组中向客户端发布正确答案和错误答案?

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

另一种方法当然是将所有答案(包括错误和正确答案)存储在一个数组中,并将正确答案的索引保存在另一个字段中,而不是填充给客户端,但我宁愿要一个更直观的数据结构体。

+0

我不清楚你的意思是“在洗牌阵列中的客户端”。也许会展示一个示例文档,并且您希望将其转换为什么样的文档将有所帮助它可能不是你想要的变换,但看到一些数据将有助于做出决定。 –

回答

0

您可以在同一个集合上创建两个发布:一个只发布没有答案的问题,另一个发布已回答问题的答案。流星会将这些数据结合到客户端,以便您可以一致地查询集合,但实质上您必须推迟向客户端推送答案。

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