猫鼬 findByIdAndUpdate 不起作用
Posted
技术标签:
【中文标题】猫鼬 findByIdAndUpdate 不起作用【英文标题】:Mongoose findByIdAndUpdate not working 【发布时间】:2013-10-02 21:04:20 【问题描述】:我在下面有一个相当直接的方法来根据其 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】:事实证明,我的错误是忘记在Schema
中定义MediaID
和Status
,如下所示:
var encodingJobSchema = new mongoose.Schema(
...
MediaID: String,
Status: String
);
【讨论】:
以上是关于猫鼬 findByIdAndUpdate 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose / Express findByIdAndUpdate 不起作用
猫鼬 TTL partialFilterExpression 不起作用?