我正在Meteor中创建一个测验应用程序。
问题的架构可以是什么样的?我正在考虑做像
这样的事情const QuestionSchema = new SimpleSchema({
text: {
type: String,
},
correctAnswers: {
type: [Object],
},
'correctAnswers.$.text': {
type: String,
},
wrongAnswers: {
type: [Object],
},
'wrongAnswers.$.text': {
type: String,
},
});
但它真的很聪明吗?如何保存用户选择的答案?
答案 0 :(得分:0)
您需要为答案定义单独的架构。
var QuestionSchema = new SimpleSchema({
text: {
type: String
},
answers: [{
type: SimpleSchema.Types.ObjectId,
ref: 'AnswerSchema'
}]
});
var AnswerSchema = new SimpleSchema({
text: {
type: String
},
correct: {
type: Boolean
},
question: {
type: SimpleSchema.Types.ObjectId,
ref: 'QuestionSchema'
}
});
如果您需要跟踪用户选择的答案,则必须将其存储在用户实例中:
var UserSchema = new SimpleSchema({
// Define other attributes here.
answers: [{
type: SimpleSchema.Types.ObjectId,
ref: 'AnswerSchema'
}]
});
答案 1 :(得分:0)
正如@gnerkus建议每个答案都有一个correct
布尔值更简单,但每个答案也需要一个_id
,以便您引用它,例如用户选择哪些答案?
const AnswerSchema = new SimpleSchema({
_id: { type: String },
text: { type: String },
correct: { type: Boolean }
});
const QuestionSchema = new SimpleSchema({
text: { type: String },
answers: { type: [AnswerSchema] }
});