2017-06-01 51 views
0

我在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}}) 

所以我的问题是,有没有更这样做的有效方法?像在相同的声明?

谢谢。

回答

1

正如所说的@约翰Zwinck 可以使用$inc递增值。您可以在findOneAndUpdate()中使用它来更新第一个匹配项refer this ,或者如果要更新多个值,也可以使用findAndModify()refer this。所以你的代码将

db.collection.findOneAndUpdate({"id":1},{ $inc : {"A" : 5}}) 

refer this知道inc运营商是如何工作的。

相关问题