当我点击提交时增加字段user.entry

时间:2018-08-15 23:57:27

标签: javascript node.js mongodb mongoose

有什么主意,每当我按下“提交”按钮并将其保存到数据库(我正在使用MongoDB / mongoose)时,如何将“ entries”字段增加1?

app.put('/image', (req, res) => {
     const { id } = req.body;
    User.findByIdAndUpdate(id)
         .then(user => {
            return res.json(user.entries);
        })
        .catch(err => {
            res.status(400).json('Error getting entries');
            console.log(err);
        })

});

我尝试了自动增量插件,但是我不知道在这种情况下是否可以使用,如果可以,我不能将其正确放置在正确的位置。我还尝试添加赞

User.findByIdAndUpdate(id, {$inc: {'entries': 1}},但只有在我按了两次,然后又打开时,它才开始起作用。

如果有人可以帮助我,那将是一个很大的帮助!!谢谢

1 个答案:

答案 0 :(得分:0)

正在工作。唯一的原因是,findByIdAndUpdate在实际执行更新操作之前会返回文档。如果要在更新操作后获取增量值,则可能要拆分findByIdAndUpdate并尝试

User.update({_id: id},{$inc: {'entries': 1}}).then(() => {
    User.findOne({_id: id}).then( user =>{
        return res.json(user.entries);
    })
}).catch(err => {
    res.status(400).json('Error getting entries');
    console.log(err);
})

如果您仍然想使用findByIdAndUpdate,也可以通过@Jonathan Lonowski来检查此solution