MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongoose:findOneAndUpdate не връща актуализиран документ

Защо това се случва?

По подразбиране е да върнете оригинала, непроменена документ. Ако искате новият актуализиран документ да бъде върнат, трябва да подадете допълнителен аргумент:обект с new свойството е зададено на true .

От документите на 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`
});

Налични опции

  • new :bool - ако вярно , върнете променено документ, а не оригинал. по подразбиране е false (променено в 4.0)

Решение

Предайте {new: true} ако искате актуализирания резултат в doc променлива:

//                                                         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. mongoose/mongodb заявка за множествено сортиране

  2. Как да създам MongoDB дъмп на моята база данни?

  3. Защо mongoDB използва objectID?

  4. Съвпадение с подниз в агрегирането на mongodb

  5. MongoDB изберете брой (различен x) в индексирана колона - брой уникални резултати за големи набори от данни