【发布时间】:2013-02-06 09:52:16
【问题描述】:
我试图将子文档推送到我的对象上。下面是 POST 的处理程序。首先,它检查该帐户是否被邀请参加调查。如果一切顺利,那么我们希望将响应推送到调查响应数组中。
handler: function(req, res, next) {
var survey = req.params.survey;
var account = req.params.account;
Survey.findById(survey).exec(function(err, survey) {
if(err) { return handleError(res, err); }
if(!survey) { return handleError(res, 'Invalid Survey', true); }
if(!account) { return handleError(res, 'Invalid Account', true); }
var invite = _(survey.invites).find(function(i){
return i.account == account;
});
if(!invite) {
return handleError(res, 'No invite exists for user');
}
if(!survey.responses) {
survey.responses = [];
}
var response = survey.responses.push(req.params);
console.log(response); // returns an integer want it to return the subdocument
survey.save(function(err){
if(err) { return handleError(res, err); }
return res.send(response);
});
});
}
我的架构:
var SurveyResponseSchema = new Schema({
account: {type: Schema.Types.ObjectId, ref: 'Account', required: true},
answers: [SurveyAnswerSchema],
complete: Boolean
});
var SurveySchema = new Schema({
start_date: Date,
end_date: Date,
title: String,
survey_questions: [SurveyQuestionSchema],
invites: [SurveyInviteSchema],
responses: [SurveyResponseSchema]
});
【问题讨论】: