ฉันมีปัญหาที่ฉันไม่เคยเห็นมาก่อนโดยที่พังพอน 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);
});
เอกสารต้นฉบับใน db มีลักษณะดังนี้:
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 1'
}
updateObj ที่เข้ามามีลักษณะดังนี้:
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 2'
}
โมเดลที่ส่งคืนจากการเรียกกลับจะเหมือนกับโมเดลเดิมไม่ใช่ updatedObj หากฉันสอบถาม db แสดงว่ามีการอัปเดตอย่างถูกต้อง เพียงแค่ไม่ถูกส่งคืนจากฐานข้อมูล
รู้สึกเหมือนเป็นข้อผิดพลาด 'ผู้ใช้โง่' แต่ฉันมองไม่เห็น ความคิดใด ๆ ที่ชื่นชมอย่างมาก