2014-11-04 72 views
-1

我在這裏做錯了什麼,我想更新分數?mongoose使用model更新文檔中的值。更新

問題是它執行的代碼沒有錯誤,但不更新分數。

Team.findOne({name: req.body.team}, function(err, teamData){    
    if(teamData) { 
     var a = teamData.score + 1; 
     Team.update({name: req.body.team},{$set: {score : a}}); 
    } 
    else { 
     console.log(err); 
    } 
}); 
+0

請描述你的代碼的問題是什麼,如果你有任何錯誤包括他們在你的問題。 – Paul 2014-11-04 20:18:09

+0

fixxed它謝謝你的評論 – user3488537 2014-11-04 20:40:47

+0

Team.update({name:req.body.team},{$ set:{score:a}},console.log);需要回撥功能 – 2014-11-04 21:59:34

回答

0

正如穆罕默德阿里所說,更新需要一個回調函數,這可能是你的問題。但也有一個更簡單的方法來做到這一點:

Team.findOne({name: req.body.team}, function(err, teamData){    
    if(teamData){ 
     teamData.score += 1 
     teamData.save(function(err) { 
      if (err) // do something 
     }); 
    }else{ 
     console.log(err); 
    } 
});