Tại sao điều này xảy ra?
Mặc định là trả lại bản gốc, không thay đổi tài liệu. Nếu bạn muốn trả lại tài liệu mới, cập nhật, bạn phải chuyển một đối số bổ sung:một đối tượng có new
thuộc tính được đặt thành true
.
Từ tài liệu mongoose:
Truy vấn # findOneAndUpdate
Model.findOneAndUpdate(conditions, update, options, (error, doc) => { // error: any errors that occurred // doc: the document before updates are applied if `new: false`, or after updates if `new = true` });
Các tùy chọn có sẵn
new
:bool - nếu đúng , trả lại đã sửa đổi tài liệu hơn là bản gốc. mặc định thành false (đã thay đổi trong 4.0)
Giải pháp
Chuyển {new: true}
nếu bạn muốn kết quả được cập nhật trong doc
biến:
// V--- THIS WAS ADDED
Cat.findOneAndUpdate({age: 17}, {$set:{name:"Naomi"}}, {new: true}, (err, doc) => {
if (err) {
console.log("Something wrong when updating data!");
}
console.log(doc);
});