Mongoose вече поддържа това изначално с findOneAndUpdate (извиква MongoDB findAndModify).
Опцията upsert =true създава обекта, ако той не съществува. по подразбиране е 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.');
});
В по-старите версии Mongoose не поддържа тези куки с този метод:
- по подразбиране
- сетери
- валидатори
- междууер