Mongoose findByIdAndUpdate不返回正确的模型
我有一个问题,我以前没有见过与Mongoose findByIdAndUpdate不返回正确的模型在callback。
代码如下:
var id = args._id; var updateObj = {updatedDate: Date.now()}; _.extend(updateObj, args); Model.findByIdAndUpdate(id, updateObj, function(err, model) { if (err) { logger.error(modelString +':edit' + modelString +' - ' + err.message); self.emit('item:failure', 'Failed to edit ' + modelString); return; } self.emit('item:success', model); }); 数据库中的原始文件如下所示:
 { _id: 1234 descriptors: Array[2], name: 'Test Name 1' } 
updateObj进入如下所示:
 { _id: 1234 descriptors: Array[2], name: 'Test Name 2' } 
从callback返回的模型与原始模型相同,而不是updatedObj。 如果我查询数据库,它已被正确更新。 它只是不从数据库返回。
这感觉像一个“愚蠢的用户”的错误,但我看不到它。 任何想法不胜感激。
 在Mongoose 4.0中, findByIdAndUpdate (和findOneAndUpdate )的new选项的默认值已更改为false (请参阅发行说明的 #2262)。 这意味着在应用更新之后,您需要明确地将该选项设置为true以获取新版本的文档: 
 Model.findByIdAndUpdate(id, updateObj, {new: true}, function(err, model) {...