MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose:findOneAndUpdate nie zwraca zaktualizowanego dokumentu

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $type Operator potoku agregacji

  2. Jak używać guid w zapytaniu powłoki mongodb?

  3. CouchDB vs. MongoDB:10 rzeczy, które powinieneś wiedzieć

  4. Mongoose, CastError:Przesyłanie do tablicy nie powiodło się podczas próby zapisania modelu zawierającego model

  5. Importowanie typu danych za pomocą mongoimport