У мене проблема, якої я раніше не бачив, оскільки 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'
}
Модель, повернута із зворотного виклику, ідентична початковій моделі, а не оновленому Obj. Якщо я запитую db, він був оновлений правильно. Це просто не повертається з бази даних.
Це відчувається як помилка "дурного користувача", але я не бачу цього. Будь-які ідеї дуже вдячні.