Mongoose le prend désormais en charge nativement avec findOneAndUpdate (appelle MongoDB findAndModify).
L'option upsert =true crée l'objet s'il n'existe pas. par défaut à faux .
var query = {'username': req.user.username};
req.newData.username = req.user.username;
MyModel.findOneAndUpdate(query, req.newData, {upsert: true}, function(err, doc) {
if (err) return res.send(500, {error: err});
return res.send('Succesfully saved.');
});
Dans les anciennes versions, Mongoose ne prend pas en charge ces crochets avec cette méthode :
- par défaut
- passeurs
- validateurs
- intergiciel