sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose findOneAndUpdate och upsert returnerar inga fel, inga dokument påverkade

Från och med Mongoose 4+, glöm inte att ställa in nytt:sant tillsammans med upsert eller så får du det gamla dokumentet som ett returvärde, inte det uppdaterade.

Detta är ganska knepigt, särskilt när begäran skapar ett dokument, som om du inte anger nytt:sant, du får ett nulldokument (det fanns inget befintligt dokument), men inget fel.

    var myObj = ...;
    collection.findOneAndUpdate(
    {uniqueAttr: myObj.uniqueAttr},
    myObj,
    {upsert: true, new: true},
    function(...) {...}


  1. Kör MongoDB på DigitalOcean

  2. I NodeJS, hur matar man ut resultat från mongodb med olika fältnamn?

  3. Uppdatera flera element i en array i mongodb

  4. Mongodb aggregat:konvertera datum till en annan tidszon