有什么主意,每当我按下“提交”按钮并将其保存到数据库(我正在使用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}}
,但只有在我按了两次,然后又打开时,它才开始起作用。
如果有人可以帮助我,那将是一个很大的帮助!!谢谢
答案 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。