sql >> Database >  >> NoSQL >> MongoDB

Mongoose:findOneAndUpdate retourneert geen bijgewerkt document

Waarom gebeurt dit?

De standaard is om de originele, ongewijzigde . terug te geven document. Als u wilt dat het nieuwe, bijgewerkte document wordt geretourneerd, moet u een extra argument doorgeven:een object met de new eigenschap ingesteld op true .

Van de mangoestdocumenten:

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

Beschikbare opties

  • new :bool - indien waar , retourneer de aangepaste document in plaats van het origineel. standaard ingesteld op false (gewijzigd in 4.0)

Oplossing

Geef {new: true} door als u het bijgewerkte resultaat in de doc . wilt variabele:

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


  1. MongoDB Vervang specifieke array-waarden

  2. Spring Redis-sorteersleutels

  3. 3 manieren om een ​​waarde uit een array in MongoDB te verwijderen

  4. Voeg een Pandas-dataframe in mongodb in met behulp van PyMongo