I have an application which allows admins to upload lessons and quizzes that links to each lesson (1 lesson, multiple quizzes).
User can then take lesson and answer the quizzes of that lesson.
Now, I am trying to store the score that they have gotten from completing the quizzes but I can't find the right way to do so with the best performance. Below is my markup, will it be any problem doing it this way?
Score Schema
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var answer = new Schema({
choice: String,
result: String
});
var quiz = new Schema({
quiz_id: { type: Schema.Types.ObjectId, ref: 'Quiz', required: true },
answer: [answer]
});
var lesson = new Schema({
lesson_id: { type: Schema.Types.ObjectId, ref: 'Lesson', required: true },
score: Number,
quiz: [quiz],
created_date: { type: Date, default: Date.now }
});
var score = new Schema({
user: { type: Schema.Types.ObjectId, ref: 'User', required: true },
lesson: [lesson]
});
var Score = mongoose.model('Score', score);
module.exports = Score;
Quiz Schema
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var answer = new Schema({
choice: String, //multiple choice answer
result: String //set true if that's the answer
});
var quiz = new Schema({
question: { type: String, required: true },
answer: [answer],
image: [{ type: String, required: true }],
lesson: { type: Schema.Types.ObjectId, ref: 'Lesson', required: true },
created_by: { type: Schema.Types.ObjectId, ref: 'User', required: true },
created_date: { type: Date, default: Date.now }
});
var Quiz = mongoose.model('Quiz', quiz);
module.exports = Quiz;
Lesson Schema
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var lesson = new Schema({
video: { type: String, required: true },
thumbnail: { type: String, required: true },
title: { type: String, required: true },
description: String,
level: Number,
lesson_number: Number,
created_date: { type: Date, default: Date.now },
activation: { type: Boolean, default: true },
views: { type: Number, default: 0 },
created_by: { type: Schema.Types.ObjectId, ref: 'User', required: true }
});
var Lesson = mongoose.model('Lesson', lesson);
module.exports = Lesson;
via Gene Lim
No comments:
Post a Comment