我正在创建一份包含以下架构的调查问卷:
var questionnaireSchema = new Schema({
user_id : String,
start_date : Date,
end_date : Date,
questions : [{
question_id : {type: Number},
answer_id : {type: Number},
answer_string : String
}]
});
我需要找到user_id设置的答案,然后查看该用户是否已经回答了该问题。
我有以下查询:
Questionnaire.findOne({'user_id': req.body.uid}, function (err, user) {
if (err) {
throw err;
}
if (user) {
Questionnaire.findOne({
'uid': req.body.uid,
'questions.question_id': req.body.question_id
}, function (err, question) {
if (question) {
console.log('Found a question - updating');
} else {
console.log('No question found - adding');
}
});
}
});
查询找到用户,但是,当我尝试一起查找用户和question.answer_id时,查询永远找不到任何内容。
我不确定如何编写此查询或在哪里查看。
谢谢
答案 0 :(得分:1)
question_id
是架构中的数字。 req.body.question_id
的类型是什么?
根据请求content-type
,它可能是一个字符串,因此第二个查询无法匹配任何内容。