用猫鼬快递:不能增加超过5左右的增量

时间:2016-11-26 03:11:58

标签: javascript node.js mongodb express

这里的基本功能是1次点击= 1次投票,它会更新MongoDB中的投票参数,并且它在MongoDB中递增就好了。但是在大约5票之后它就会停止递增。当我刷新浏览器时,它允许我再增加5个增量,然后再下一次刷新...

我是否遗漏了某些内容,或许与“findOneAndUpdate'方法?我尝试过使用'更新'方法和行为是一样的。我检查过这些文档后发现没有提到过' $ inc'增量/时间/间隔限制。这是我的server.js:

var express = require('express');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var bodyParser = require('body-parser');
var app = express();


mongoose.connect('mongodb://localhost:27017/food');


//Allow all requests from all domains & localhost
app.all('/*', function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, Accept");
  res.header("Access-Control-Allow-Methods", "POST, GET");
  next();
});

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));


var usersSchema = new Schema({
  id: String,
  vote: Number
});

var bkyes = mongoose.model('bkyes', usersSchema);

app.get('/bkyes', function(req, res) {
bkyes.find({}, function(err, bkyes) {
  res.send(bkyes);
  });
});

app.post('/bkyes', function(req, res, next) {
  bkyes.findOneAndUpdate({$inc: { vote: 1 }})
      .exec(function(err, foundObject) {
      if (err) {
        console.log(err);
    }});
});

app.listen(3000);

2 个答案:

答案 0 :(得分:0)

如果你想增加投票价值,那么只需使用findAndModify.here我的查询工作完全正常,并增加投票价值

db.getCollection('bikes').findAndModify({update:{$inc:{vote:1}}})

答案 1 :(得分:0)

新开发者和我不知道你必须发回一个状态,否则浏览器只会建立待处理的请求。无知我知道,但希望这有助于某人。修改后的POST请求代码:

app.post('/bkyes', function(req, res, next) {
  bkyes.update({$inc: { vote: 1 }})
      .exec(function(err, foundObject) {
      if (err) {
        console.log(err);
    }});
    res.status(200).send();
});