猿问

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

我试图增加用户每次在博客上发表评论时的当前收入价值。我正在用 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 routes

router.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);

                }

            })

        }

    });

});


我希望收益值会增加并为特定用户的每条评论保存


临摹微笑
浏览 175回答 2
2回答

ITMISS

您需要使用“$inc”运算符来增加任何数值。此外,使用“更新”而不是“保存”来更新文档。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答