2016-09-21 33 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

相关问题