javascript - MongoDB/Mongoose - 通过执行加法更新文档中的数字

标签 javascript node.js mongodb mongoose

我有一个 mongoDB 集合,用于存储节省的时间和成本。 当用户第一次输入数据时文档看起来像这样:

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

现在,当用户再次输入数据时,我会发现该用户的文档是否已经存在,如果存在,我会得到它。

这次用户输入:

  1. 节省时间 55
  2. 省钱 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/

相关文章:

javascript - 是否可以在没有 removeEventListener 的情况下删除事件监听器?

javascript - 查找带有特定文本的 td,并在该文本之后立即对 td 进行操作?

javascript - AmCharts 值轴不从零开始

javascript - 有没有办法用 youtube 视频填充 div,比如背景大小 :cover css property

node.js - Facebook "active access token must be used"

javascript - 打开 MongoDB 数据库

javascript - 为什么我在 Node.js 中使用 for in 循环迭代时得到函数

sql - Node.js - 将 SQL 查询转换为 Knex.js

java - 导入自己的枚举转换器

java - Mongo、spring 和序列化