[英]Node.js Mongoose update on embedded document with pull not persisting
[英]Mongoose embedded document update not persisting
我目前正在使用MEAN堆棧,正在嘗試更新嵌入式文檔。 一切似乎都可以執行,但是刷新后數據不會持久:
// Soon to be update answer
exports.updateAnswer = function(req, res) {
var ansId = req.params.aid;
var result;
Poll.findById(req.params.id,function(err, poll){
if(err) { return handleError(res, err); }
poll.answers.forEach(function(answer){
if(ansId == answer._id) result = answer;
})
var updated = _.merge(result, req.body);
poll.markModified('answers');
updated.save(function (err) {
if (err) { return handleError(res, err); }
return res.json(200, poll);
});
});
};
我的架構:
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
var AnswerSchema = new Schema({
answer: String,
votes:{type: Number, default: 0}
});
module.exports = mongoose.model('Answer', AnswerSchema);
var PollSchema = new Schema({
author: String,
question: String,
answers: [AnswerSchema]
});
module.exports = mongoose.model('Poll', PollSchema);
放置請求:
$scope.vote = function(answer) {
$scope.pollObj.answers.forEach(function(el,indx){
if(el['_id'] == $scope.radioVal.selected) {
el['votes']++;
$http.put('/api/polls/'+$scope.pollId+'/answers/'+el['_id'],el).
success(function(data){
console.log(data);
})
}
})
laggingreflex提供的答案:
exports.updateAnswer = function(req, res) {
var ansId = req.params.aid;
var result;
Poll.findById(req.params.id,function(err, poll){
if(err) { return handleError(res, err); }
poll.answers.forEach(function(answer){
if(ansId == answer._id) result = answer;
})
var updated = _.merge(result, req.body);
poll.markModified('answers');
poll.save(function (err) { // <== change here
if (err) { return handleError(res, err); }
return res.json(200, poll);
});
});
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.