2013-09-26 40 views
3

我有一個相當直接的方法來更新基於它的ObjectId的文檔。它不會返回錯誤,但無法對文檔進行必要的更新。我認爲這是失敗的,因爲根據我的研究,findByIdAndUpdate()只採用簡單的Javascript,而job._id是我想要更新的文檔中的ObjectId。有人能告訴我如何使這項工作正確嗎?Mongoose findByIdAndUpdate不起作用

function handleEncoderResponse(xmlResponse, job) { 
var r = et.parse(xmlResponse); 
var mediaID = r.findtext('./MediaID'); 
var message = r.findtext('./message'); 

EncodingJob = mongoose.model('EncodingJob'); 

EncodingJob.findByIdAndUpdate(job._id, { 
    "MediaID": mediaID, 
    "Status": message 
}, function(err, result) { 
    if (err) console.log(err); 
    console.log(result); 
}); 

} 

編輯:每這個問題Mongoose update document Fail with findByIdAndUpdate

我也試過下面的代碼無濟於事。

job.MediaID = mediaID; 
job.Status = message; 
job.save(function(err, res) { 
    if(err) console.log(err); 
    }); 

這種方法會產生問題。它不會更新文檔,並且不會返回錯誤。

回答

3

事實證明,我的錯誤是忘記在Schema定義MediaIDStatus如下:

var encodingJobSchema = new mongoose.Schema({ 
    ... 
    MediaID: String, 
    Status: String 
}); 
相關問題