Tengo un problema que no había visto antes con Mongoose findByIdAndUpdate que no devuelve el modelo correcto en la devolución de llamada.
Aquí está el código:
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);
});
El documento original en la base de datos se ve así:
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 1'
}
El updateObj que entra se ve así:
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 2'
}
El modelo devuelto por la devolución de llamada es idéntico al modelo original, no al updatedObj. Si consulto la base de datos, se ha actualizado correctamente. Simplemente no se devuelve de la base de datos.
Esto se siente como un error de 'usuario estúpido', pero no puedo verlo. Cualquier idea muy apreciada.