为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法可以根据用户活动(如评论)增加模型中的值?

有没有办法可以根据用户活动(如评论)增加模型中的值?

临摹微笑 2021-06-29 17:47:24
我试图增加用户每次在博客上发表评论时的当前收入价值。我正在用 Node 和 Express 编写一个加密程序,用于后端和 MongoDB 用于数据库。我希望能够增加用户在平台上发表的每条评论所赚取的金额(当前)。我曾尝试向用户模型添加“收入”字段,并将其设置为 Number,因为这正是我真正需要的。然后我写了一些代码行来增加用户在应用程序(博客)中的任何地方发表评论时的当前数量,但它似乎不起作用。相反,它返回相同的数字,即 20。我将其设置为每条评论添加 20,但它始终返回 20 而不是 20、40、60……我的代码如下    // my model    var userSchema = new mongoose.Schema({        username: String,        firstName: String,        lastName: String,        earnings: 0,        email: String,        password: String    })    // my routesrouter.post('/', middleware.isLoggedIn, (req, res) => {    // find blog using ID    Blog.findById(req.params.id, (err, blog) => {        if(err) {            console.log('Error:', err);            res.redirect('/blogs');        } else {            Comment.create(req.body.comment, (err, comment) => {                if(err) {                    req.flash('error', 'Something went wrong');                    console.log('Error:', err);                } else {                    // add id                    comment.author.id = req.user._id;                    comment.author.username = req.user.username;                    var total = Number(req.user.earnings);                    // save comment                    comment.save();                    User.earnings = total;                    User.earnings += 20;                    blog.comments.push(comment);                    blog.save();                    res.redirect('/blogs/' + blog._id);                    console.log(req.user.earnings);                    console.log(User.earnings);                }            })        }    });});我希望收益值会增加并为特定用户的每条评论保存
查看完整描述

2 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

您需要使用“$inc”运算符来增加任何数值。此外,使用“更新”而不是“保存”来更新文档。



查看完整回答
反对 回复 2021-07-08
  • 2 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信