在SQL中,您可以执行以下操作:
UPDATE test SET a = b + c
我想知道在MongoDB中是否有类似的功能。例如:
db.test.update({},{$set: {a: b + c}})
然而,当我尝试时,它说B和c没有定义(这是有道理的)。有没有什么方法可以告诉Mongo使用它正在更新的对象的字段值?或者我总是需要分两步来做--首先检索字段,然后使用它们来构造适当的更新语句。
ruarlubt1#
在更新操作中,MongoDB不能这样做,需要使用map/reduce或db.eval来完成,即使这样,从技术上讲,仍然需要运行两个查询,一个用于查找,一个用于更新。
yduiuuwa2#
这是一个十年后,但..它是在我的方式,我保留你的职位,当我解决它。如果您在插入数据库之前进行计算,则可以将数据库中的值转换为数字,然后进行计算并将新变量添加到insertOne或updateOne...不管怎样...你都可以。
2条答案
按热度按时间ruarlubt1#
在更新操作中,MongoDB不能这样做,需要使用map/reduce或db.eval来完成,即使这样,从技术上讲,仍然需要运行两个查询,一个用于查找,一个用于更新。
yduiuuwa2#
这是一个十年后,但..它是在我的方式,我保留你的职位,当我解决它。
如果您在插入数据库之前进行计算,则可以将数据库中的值转换为数字,然后进行计算并将新变量添加到insertOne或updateOne...
不管怎样...你都可以。