MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como faço para atualizar/inserir um documento no Mongoose?


O Mongoose agora suporta isso nativamente com findOneAndUpdate (chama MongoDB findAndModify).

A opção upsert =true cria o objeto se ele não existir. o padrão é falso .
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.');
});

Em versões mais antigas, o Mongoose não suporta esses ganchos com este método:
  • padrões
  • definidores
  • validadores
  • middleware