首页 > 解决方案 > mongoDB中的增量值

问题描述

我正在尝试在 mongoose 函数中添加两个值。

这是我正在使用的功能:

Equipa.findOne({ '_id': req.params.equipaID }, function (error, equipa) {
  if (error) {
    return (error);
  }

  if (util.isNullOrUndefined(equipa)) {
    return res.status(204).end()
  }

  console.log(equipa.distanciaTotal + "------" + req.body.distanciaPercorrida),
  { total : {$add[equipa.distanciaTotal,req.body.distanciaPercorrida]}},
  console.log(total)  
});

equipa.distanciaTotal和中的值req.body.distanciaPercorrida是正确的,由Equipa找到的也是正确的Equipa.findOne

我认为更新文档会很好,但我根本无法添加这两个值。

标签: javascriptnode.jsmongodbmongooseadd

解决方案


你可以使用 $inc

Equipa.findOneAndUpdate(
    { '_id': req.params.equipaID }, 
    { $inc: { distanciaTotal: req.body.distanciaPercorrida } }
);

或者更新后保存文档

Equipa.findOne({ '_id': req.params.equipaID }, (err, equipa) => {
    equipa.distanciaTotal += req.body.distanciaPercorrida;
    equipa.save();
});

推荐阅读