2016-09-21 70 views
0

我認爲我沒有給出這個好標題,但我發現很難口頭表達。如何爲每個用戶提供中央集合中的文檔副本

我正在構建一個應用程序,其中有一些可供每個用戶訪問的選擇題。

我怎樣才能讓每個用戶訪問他們自己的「複製」多選題考試?

現在我正在做的是在創建帳戶時爲每個用戶添加每個用戶的所有選擇題的每個問題的完整副本,但這會非常迅速地變得混亂,意味着在將來更新問題或改變考試將是一場噩夢。

有沒有一種方法可以有一個收集考試的集合,然後每個用戶都可以訪問自己的「複製」該考試記錄他們的答案等?

感謝

回答

1

的一種方法是建立你的數據庫有考試集合,然後每個用戶的回答可以被存儲在一個單獨的集合與他們的答案和參考ID來考試,用戶答案屬於。下面是一個例子,這可能更容易理解。

考試收集樣本數據:

{ 
    examId: 001, 
    examType: "multiple-choice", 
    examQuestions: [ 
    { 
     questionNumber: 01, 
     questionText: "How many collections should I use?", 
     questionChoices: [ 
     { 
      choice: "five", 
      correct: 0 
     }, 
     { 
      choice: "three", 
      correct: 0 
     } 
     { 
      choice: "one", 
      correct: 0 
     } 
     { 
      choice: "two", 
      correct: 1 
     } 
     ] 
    }, 
    { 
     questionNumber: 02, 
     questionText: "What should I call my exams collection?", 
     questionChoices: [ 
     { 
      choice: "tests", 
      correct: 0 
     }, 
     { 
      choice: "exams", 
      correct: 1 
     } 
     { 
      choice: "icecream", 
      correct: 0 
     } 
     { 
      choice: "bob", 
      correct: 0 
     } 
     ] 
    } 
    ] 
} 

userAnswers收集樣本數據:

{ 
    userId: "j23owdd9sJDO(Ee09kd", 
    examId: 001, 
    examAnswers: [ 
    { 
     questionNumber: 01, 
     questionAnswer: "two", 
     correct: 1 
    }, 
    { 
     questionNumber: 02, 
     questionAnswer: "bob", 
     correct: 0 
    } 
    ] 
} 

這門考試採集設置會給你存儲在你的考試集多項檢查和跟蹤類似數據的選項併爲每個考試提供一個唯一的ID,以便在您的應用或其他收藏中引用它。它還會保持您的考試收集清潔。

此userAnswers集合設置將爲您提供存儲每個用戶多個考試答案的選項。存儲他們提供的答案是否正確可以讓您更輕鬆地顯示每個考試的分數以及他們有多少正確的答案。

+0

感謝您的答案,這絕對有道理。 想想我會用這個設置! – Sean

相關問題