我在pymongo
中使用两个语句来首先找到一个值,添加到该值,然后更新文档。所以说我得到原始值:
orig_item = list(db.collection.find({"id": 1}))[0]['A']
然后我需要为原始文件添加一个新值并再次更新文档:
plus_item = orig_item + 5
db.collection.update_one({"id" : 1},
{"$set" : {"A" : plus_item}})
所以我的问题是,有更有效的方法吗?就像在同一个声明中一样?
感谢。
答案 0 :(得分:1)
db.collection.update_one({"id" : 1},
{"$inc" : {"A" : 5}})
答案 1 :(得分:1)
正如@John Zwinck所说
您可以使用$inc
来增加值。您可以在findOneAndUpdate()
中使用它来更新第一次出现refer this
或者,如果要更新多个值,也可以使用findAndModify()
refer this。所以你的代码将是
db.collection.findOneAndUpdate({"id":1},{ $inc : {"A" : 5}})
refer this了解inc
运算符的工作原理。