Warum passiert das?
Die Standardeinstellung ist, das Original, unverändert zurückzugeben dokumentieren. Wenn Sie möchten, dass das neue, aktualisierte Dokument zurückgegeben wird, müssen Sie ein zusätzliches Argument übergeben:ein Objekt mit dem new
Eigenschaft auf true
gesetzt .
Aus den Mongoose-Dokumenten:
Abfrage#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`
});
Verfügbare Optionen
new
:bool - falls true , geben Sie die geänderte zurück Dokument statt Original. standardmäßig falsch (geändert in 4.0)
Lösung
Übergeben Sie {new: true}
wenn Sie das aktualisierte Ergebnis im doc
haben möchten Variable:
// 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);
});