sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo actualizo/upsert un documento en Mongoose?

Mongoose ahora admite esto de forma nativa con findOneAndUpdate (llama a MongoDB findAndModify).

La opción upsert =true crea el objeto si no existe. predeterminado en 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.');
});

En versiones anteriores, Mongoose no admite estos ganchos con este método:

  • predeterminados
  • establecedores
  • validadores
  • programa intermedio