Tôi gặp sự cố mà tôi chưa từng gặp trước đây với Mongoose findByIdAndUpdate không trả về mô hình chính xác trong lệnh gọi lại.
Đây là mã:
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);
});
Tài liệu gốc trong db trông như thế này:
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 1'
}
Bản updateObj đi vào trông như thế này:
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 2'
}
Mô hình được trả về từ lệnh gọi lại giống với mô hình ban đầu, không phải là updatedObj. Nếu tôi truy vấn db, nó đã được cập nhật chính xác. Nó chỉ không được trả về từ cơ sở dữ liệu.
Điều này giống như một lỗi 'người dùng ngu ngốc', nhưng tôi không thể nhìn thấy nó. Bất kỳ ý tưởng đánh giá rất cao.