使用 findOneAndUpdate MongoDB 添加现有值

Jam*_*ber 5 mongoose mongodb node.js

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

模型

var Player = new Schema({
     goals: {type: Number, default: 2}
});
Run Code Online (Sandbox Code Playgroud)

更新

var updatedPlayers = {goals:2};

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

在播放器上找到的预期结果

{goals: 4}
Run Code Online (Sandbox Code Playgroud)

小智 7

您需要使用 MongoDB$inc更新运算符

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

所以它的目标数量比以前的值增加 2