Gente de StackOverflow, estoy ardiendo con la pregunta, ¿cómo incremento un
¿Valor numérico en Mongoose? He probado el siguiente código, aunque no funciona. Estoy tratando de incrementar un valor en uno al enviar un formulario. A continuación se muestra mi código:
app.post('/like', function (req, res) { var id = req.body.id; var query = {_id: id}; var post = Meme.findOne(query); Meme.findOneAndUpdate(post, post.likes: post.likes+1) });¡Muchas gracias por tu valiosa ayuda!
Puede usar $inc para este propósito.
Prueba esto:
var id = req.body.id; Meme.findOneAndUpdate({_id :id}, {$inc : {'post.likes' : 1}}).exec(...);Para obtener más información sobre $inc, lea la documentación de MongoDB $inc
Con mongoose versión 5, se necesita una opción adicional "useFindAndModify":
// Make Mongoose use mongoDB's `findOneAndUpdate()`. Note that this option is `true` // by default, you need to set it to false. mongoose.set('useFindAndModify', false); Meme.findOneAndUpdate( {_id: res._id}, {$inc : {'UID' : 1}}, {new: true}, function(err, response) { // do something });Meme.findOneAndUpdate({ _id: res._id }, { $inc: {'post.like': 1 } }, {new: true },function(err, response) { if (err) { callback(err); } else { callback(response); }