Защо това се случва?
По подразбиране е да върнете оригинала, непроменена документ. Ако искате новият актуализиран документ да бъде върнат, трябва да подадете допълнителен аргумент:обект с new
свойството е зададено на true
.
От документите на mongoose:
Query#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` });
Налични опции
new
:bool - ако вярно , върнете променено документ, а не оригинал. по подразбиране е false (променено в 4.0)
Решение
Предайте {new: true}
ако искате актуализирания резултат в doc
променлива:
// 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);
});