使用findOneAndUpdate MongoDB添加现有值

时间:2015-08-31 10:27:56

标签: node.js mongodb mongoose

我希望能够在我的查询中做数学,而不必先从数据库中提取数据,然后进行数学运算,然后将对象传递给findOneAndUpdate

模型

var Player = new Schema({
     goals: {type: Number, default: 2}
});

更新

var updatedPlayers = {goals:2};

return Player.findOneAndUpdate(user_id, updatedPlayers, function (err, doc) {
    if (err) return res.send(500, {error: err});
    return doc;
})

想要播放器上的搜索结果

{goals: 4}

1 个答案:

答案 0 :(得分:4)

您需要使用MongoDB $inc update operator

return Player.findOneAndUpdate(user_id, {$inc: {goals: 2}}, function (err, doc) {
  if (err) return res.send(500, {error: err});
  return doc;
})

所以它从之前的值增加了2个目标