MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose:findOneAndUpdate gibt kein aktualisiertes Dokument zurück

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);
});