Mongoose ondersteunt dit nu native met findOneAndUpdate (roept MongoDB findAndModify aan).
De optie upsert =true maakt het object aan als het niet bestaat. standaard ingesteld op false .
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.');
});
In oudere versies ondersteunt Mongoose deze haken niet met deze methode:
- standaardinstellingen
- zetters
- validateurs
- middleware