MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment vérifier si un document a été inséré ou mis à jour lors de l'utilisation de findOneAndUpdate ?

Depuis le 8 août 2019 (Mongoose Version 5.6.9), la propriété à définir est "rawResult" et non "passRawResult":

M.findOneAndUpdate({}, obj, {new: true, upsert: true, rawResult:true}, function(err, d) {
    if(err) console.log(err);
    console.log(d);
});

Sortie :

{ lastErrorObject:
   { n: 1,
     updatedExisting: false,
     upserted: 5d4befa6b44b48c3f2d21c75 },
  value: { _id: 5d4befa6b44b48c3f2d21c75, rating: 4, review: 'QQQ' },
  ok: 1 }

Notez également que le résultat est renvoyé en tant que deuxième paramètre et non en tant que troisième paramètre du rappel. Le document peut être récupéré par d.value.