Dlaczego tak się dzieje?
Domyślny jest zwrócenie oryginalnego, niezmienionego dokument. Jeśli chcesz, aby nowy, zaktualizowany dokument został zwrócony, musisz przekazać dodatkowy argument:obiekt z new
właściwość ustawiona na true
.
Z dokumentacji dotyczącej mangusty:
Zapytanie#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`
});
Dostępne opcje
new
:bool - jeśli prawda , zwróć zmodyfikowany dokument, a nie oryginał. domyślnie fałszywe (zmienione w 4.0)
Rozwiązanie
Przekaż {new: true}
jeśli chcesz zaktualizowany wynik w doc
zmienna:
// 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);
});