2016-09-29 7 views
1

配列内のオブジェクトを更新しようとしています。保存を伴うMongoose更新サブ文書が機能しない

マイコード:

module.exports = (req, res) => { 

    var givenProject = req.body; 
    var query = mongoose.model('cv').findOne({alias: req.params.alias}); 

    query.exec(function(err, cv){ 
    if(err){ 
     res.status(400).send({message: 'Could not find cv with alias: ' + req.params.alias, err: err}) 
    } 
    var doc = cv.projects.id(req.params.id); 
    doc.langTitles = givenProject.langTitles; 
    doc.langDescriptions = givenProject.langDescriptions; 
    doc.save(function(err){ 
     if(err){ 
     res.status(400).send({message: 'Could not update project', err: err}); 
     return; 
     } 
     res.status(200).send(); 
    }); 
    }); 
}; 

エラーが与えられていません。 var docが見つかりました。投稿されたデータのデータ構造はdocと同じで、元のデータとは異なります。

文書は更新されません。私はここで何が欠けていますか?マングースdocsによると

+0

ライン 'VARドキュメント= cv.projects.id(req.params.id)後のドキュメントとは何であると

doc.save(function(err) ... 

交換してみてください;'? 'cv.projects'とは何ですか? 'cv.projects.id'は関数ですか? – marekful

+0

サブ文書を見つけるためにmongooseに組み込まれた関数。 http://mongoosejs.com/docs/subdocs.html – Per

答えて

0

サブ文書は、通常の文書として、すべて同じ機能を楽しむことができます。 唯一の違いは、彼らがトップレベルの親文書がを保存するたびに保存されて をしている、tのちょっと個別に保存されないことです。

したがって

cv.save(function(err) ... 
関連する問題