Saya memiliki masalah yang belum pernah saya lihat sebelumnya dengan Mongoose findByIdAndUpdate tidak mengembalikan model yang benar di callback.
Berikut kodenya:
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);
});
Dokumen asli di db terlihat seperti ini:
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 1'
}
UpdateObj masuk terlihat seperti ini:
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 2'
}
Model yang dikembalikan dari callback identik dengan model asli, bukan updatedObj. Jika saya menanyakan db, itu telah diperbarui dengan benar. Itu hanya tidak dikembalikan dari database.
Ini terasa seperti kesalahan 'pengguna bodoh', tapi saya tidak bisa melihatnya. Setiap ide sangat dihargai.