如何使用Node JS在MongoDB中增加值

时间:2019-03-07 04:15:15

标签: javascript node.js mongodb

我想找到访客人数。所以我刚刚创建了一个带有计数的集合

 var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var Visitor = new Schema({
    count: { type: Number, default: 0 },
});
module.exports = mongoose.model('visitor', Visitor);

现在,我想增加路由/backend/visitors所调用的count的值

const Visitor = require('../models/Visitor');
router.route('/backend/visitors').get(function (req, res, next) {
    const visitor = new Visitor({
        count:1,
    });
    Visitor.update({}, { __v: 0 })
        .then(users => {
            console.log(users)
            try {
                visitor
                    .save()
                    .then(visitor => {
                        res.send(visitor);
                    })
            }
        }
    )
});

我不知道如何增加数据库中count的值,之后我想将count的响应发送到res.send(count)之类的页面

1 个答案:

答案 0 :(得分:0)

$inc运算符用于递增或递减(使用减号)操作。

对于更新操作查询,您应该首先参考MongoDB文档:enter image description here

如果Visitor模式只有一个文档,则应使用findOneAndUpdate查询。 您的查询将如下所示:

Visitor.findOneAndUpdate({}, {
  $inc: { count: 1 }
}).exec();

如果有多个文档,则应使用updateMany查询:

Visitor.updateMany(selectQueryObj, {
  $inc: { count: 1 }
}).exec()