我有一个 mongoDB 集合,用于存储节省的时间和成本。 当用户第一次输入数据时文档看起来像这样:
{ "fullName" : "john smith",
"company" : "xyz",
"email" : "john.smith@xyz.com",
"timeSaved" : 50 //this is in minutes
"moneySaved" : 10 //this is in dollars
}
现在,当用户再次输入数据时,我会发现该用户的文档是否已经存在,如果存在,我会得到它。
这次用户输入:
- 节省时间 55
- 省钱 10
我想将新值添加到现有值。所以在文件显示这个之后:
"timeSaved" : 105 // old 50 + new 55
"moneySaved" : 20 // old 10 + new 10
实现此目标的最佳方法是什么。 mongodb/mongoose 中是否有内置函数可以帮助解决这个问题。
最佳答案
您可以通过 $inc 来完成此操作运算符(operator)。 $inc
运算符按指定值递增字段
例如你的情况:
UserModel.update(
SomeFindCriteria,
{ $inc: { timeSaved: newTimeSaved, moneySaved: newMoneySaved } }
)
关于javascript - MongoDB/Mongoose - 通过执行加法更新文档中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42135787/