2016-01-22 55 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}}); 
});