sql >> Databáze >  >> NoSQL >> MongoDB

Mongoose:findOneAndUpdate nevrací aktualizovaný dokument

Proč se to děje?

Výchozí je vrátit originál, nezměněný dokument. Pokud chcete, aby byl vrácen nový, aktualizovaný dokument, musíte předat další argument:objekt s new vlastnost nastavena na true .

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

Dostupné možnosti

  • new :bool – pokud pravda , vraťte upraveno dokument spíše než originál. výchozí hodnota je false (změněno ve verzi 4.0)

Řešení

Předejte {new: true} pokud chcete aktualizovaný výsledek v doc proměnná:

//                                                         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. Jak se připojit ke dvěma dalším kolekcím s podmínkami

  2. Jak vyřešit MongoError:fond zničen při připojování k CosmosDB

  3. "Pole vyžadovalo fazoli typu, který nebylo možné najít." error spring restful API pomocí mongodb

  4. mongodb seskupit hodnoty podle více polí