【问题标题】:Find value and add to same value in the same statement在同一语句中查找值并添加到相同的值
【发布时间】:2017-11-02 20:24:57
【问题描述】:

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

所以我的问题是,有没有更有效的方法来做到这一点?就像在同一个声明中?

谢谢。

【问题讨论】:

    标签: python python-2.7 pymongo


    【解决方案1】:
    db.collection.update_one({"id"   : 1},
                             {"$inc" : {"A" : 5}})
    

    参考:PyMongo $inc having issues

    【讨论】:

      【解决方案2】:

      正如@John Zwinck 所说 您可以使用$inc 来增加值。您可以在findOneAndUpdate() 中使用它来更新第一次出现refer this 或者,如果您想更新多个值,也可以使用 findAndModify() refer this。所以你的代码将是

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

      refer this 了解inc 运算符的工作原理。

      【讨论】:

        猜你喜欢
        • 2022-01-17
        • 2012-10-22
        • 1970-01-01
        • 2018-04-21
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        • 2021-04-17
        • 1970-01-01
        相关资源
        最近更新 更多