埋め込みドキュメントの更新に問題があります。マングース埋め込みドキュメント更新
マイ定義されたスキーマ:
var Talk = new Schema({
title: {
type: String,
required: true
},
content: {
type: String,
required: true
},
date: {
type: Date,
required: true
},
comments: {
type: [Comments],
required: false
},
vote: {
type: [VoteOptions],
required: false
},
});
var VoteOptions = new Schema({
option: {
type: String,
required: true
},
count: {
type: Number,
required: false
}
});
今、私は与えられたTalk
idとVoteOption
IDで、vote.count++
を更新したいと思います。私は仕事をするには、次の機能を持っている:
function makeVote(req, res) {
Talk.findOne(req.params.id, function(err, talk) {
for (var i = 0; i < talk.vote.length; i++) {
if (talk.vote[i]._id == req.body.vote) {
talk.vote[i].count++;
}
}
talk.save(function(err) {
if (err) {
req.flash('error', 'Error: ' + err);
res.send('false');
} else {
res.send('true');
}
});
});
}
すべては私がres.send('true')
を取り戻す、実行されますが、カウント数の値は変更されません。
console.log
私はそれが値を変更したのを見ましたが、talk.save
はdbに保存しません。
また、埋め込みドキュメントの_id
を見つけるだけのサイクルについては、私は非常に不満です。 mongooseのドキュメントで私はtalk.vote.id(my_id)
について読んでいますが、それは私にid
の機能を持たないというエラーを与えてくれます。
今日のヒーロー! – MrBr