Mongoose findByIdAndUpdate无效

时间:2013-09-26 18:32:06

标签: mongodb mongoose

我在下面有一个相当简单的方法来根据其ObjectId更新文档。它不会返回错误,但无法对文档进行必要的更新。我认为它失败了,因为根据我的研究,findByIdAndUpdate()只接受普通的Javascript,而job._id是我要更新的文档中的ObjectId。有人能告诉我如何使这项工作正确吗?

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);
    });

这种方法产生了问题。它不会更新文档,也不会返回错误。

1 个答案:

答案 0 :(得分:3)

事实证明,我的错误是忘记在MediaID中定义StatusSchema,如下所示:

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