mongodb 我可以在mongo更新中使用对象的属性进行基本的数学运算吗?

pbwdgjma  于 2022-11-22  发布在  Go
关注(0)|答案(2)|浏览(123)

在SQL中,您可以执行以下操作:

UPDATE test SET a = b + c

我想知道在MongoDB中是否有类似的功能。例如:

db.test.update({},{$set: {a: b + c}})

然而,当我尝试时,它说B和c没有定义(这是有道理的)。有没有什么方法可以告诉Mongo使用它正在更新的对象的字段值?或者我总是需要分两步来做--首先检索字段,然后使用它们来构造适当的更新语句。

ruarlubt

ruarlubt1#

在更新操作中,MongoDB不能这样做,需要使用map/reduce或db.eval来完成,即使这样,从技术上讲,仍然需要运行两个查询,一个用于查找,一个用于更新。

yduiuuwa

yduiuuwa2#

这是一个十年后,但..它是在我的方式,我保留你的职位,当我解决它。
如果您在插入数据库之前进行计算,则可以将数据库中的值转换为数字,然后进行计算并将新变量添加到insertOne或updateOne...
不管怎样...你都可以。

相关问题