Ho un problema che non ho visto prima con il findByIdAndUpdate di Mongoose che non restituisce il modello corretto nella richiamata.
Ecco il codice:
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);
});
Il documento originale nel db ha questo aspetto:
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 1'
}
L'aggiornamentoObj in corso assomiglia a questo:
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 2'
}
Il modello restituito dalla richiamata è identico al modello originale, non aggiornatoObj. Se interrogo il db, è stato aggiornato correttamente. Semplicemente non viene restituito dal database.
Sembra un errore di "utente stupido", ma non riesco a vederlo. Tutte le idee notevolmente apprezzate.