如何在Mongoose中增加Number值?

Saf*_*yal 12 mongoose mongodb node.js

StackOverflow的人,我正在讨论这个问题,如何增加
Mongoose中的Number值?我已经尝试了下面的代码,虽然它不起作用.我试图在提交表单时将值增加1.以下是我的代码:

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)
});
Run Code Online (Sandbox Code Playgroud)

非常感谢您的宝贵帮助!

Rav*_*rti 37

你可以用它$inc来达到这个目的.

试试这个:

var id = req.body.id;
Meme.findOneAndUpdate({_id :id}, {$inc : {'post.likes' : 1}}).exec(...);
Run Code Online (Sandbox Code Playgroud)

有关$ inc的更多信息,请阅读MongoDB $ inc文档

  • 如果你想减少也有效:只需给出一个负数,就像这样:var id = req.body.id; Meme.findOneAndUpdate({_id :id}, {$inc : {'post.likes' : -1}}).exec(...); (5认同)

小智 8

猫鼬版本 5 需要一个附加选项“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
      });
Run Code Online (Sandbox Code Playgroud)

猫鼬折旧文档


Prv*_*hlt 5

Meme.findOneAndUpdate({ _id: res._id }, { $inc: {'post.like': 1 } }, {new: true },function(err, response) {
 if (err) {
 callback(err);
} else {
 callback(response);
}

Run Code Online (Sandbox Code Playgroud)

希望此链接有助于找到您的解决方案