【问题标题】:pymongo - Update a data and access the found valuepymongo - 更新数据并访问找到的值
【发布时间】:2022-01-12 02:52:17
【问题描述】:

我正在尝试更新存储在 mongodb 集合中的数组的值

any_collection: {
 {
  "_id": "asdw231231"
  "values": [
     {
        "item" : "a"
     },
     {
        "item" : "b"
     }
   ],
  "role": "role_one"
 },
 ...many similar
}

这个想法是我想访问值并使用我在 mongodb 文档中找到的以下代码编辑一个值

conn.any_collection.find_one_and_update(
    {
        "_id": any_id,
        "values.item": "b"
    },
    {
        "$set": {
            "values.$.item": "new_value"  # here the error, ".$."
        }
    }
)

这应该可以,但我不明白错误是什么或 pymongo 的正确语法是什么。添加“$”时产生错误;

【问题讨论】:

    标签: python mongodb pymongo flask-pymongo


    【解决方案1】:

    它适用于我的 fastAPI。

    @app.get("/find/{id}")
    async def root(id: int):
        db = get_database()
        q = {'_id': 'asdw231231','values.item': 'b'}
        u = {'$set': {'values.$.item': 'new_value' }}
        c = db['any'].find_one_and_update(q, u)
        return {"message": c}
    

    mongoplayground

    【讨论】:

      猜你喜欢
      • 2020-04-16
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多