1
我想每次將子文檔推送到我的對象上。以下是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]
});