MongoDB / Mongoose – 通过执行Addition更新文档中的数字

我有一个mongoDB集合,可以存储时间和成本。 当用户第一次input数据时 ,文件有点像这样:

{ "fullName" : "john smith", "company" : "xyz", "email" : "john.smith@xyz.com", "timeSaved" : 50 //this is in minutes "moneySaved" : 10 //this is in dollars } 

现在,当用户再次input数据时,我发现这个用户是否已经存在一个文档,如果有的话,我可以得到它。

这次用户input了:

  1. 节省时间55
  2. 钱已保存10

我想新的值添加到现有的值。 所以文件显示这个之后:

 "timeSaved" : 105 // old 50 + new 55 "moneySaved" : 20 // old 10 + new 10 

什么是实现这个最好的方法。 在MongoDB / Mongoose中是否有内置的function可以帮助解决这个问题。

你可以通过$ inc操作符来做到这一点。 $inc操作符按指定值递增一个字段

例如在你的情况下:

 UserModel.update( SomeFindCriteria, { $inc: { timeSaved: newTimeSaved, moneySaved: newMoneySaved } } )