我遇到了一个我以前从未见过的问题,Mongoose findByIdAndUpdate没有在回调中返回正确的模型.
以下是代码:
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'
}
回调返回的模型与原始模型相同,而不是updatedObj.
这感觉像是一个"愚蠢的用户"错误,但我看不出来.非常感谢您的任何 idea .