Skip to main content
 首页 » 编程设计

python之在 MongoDB 中更新字典的有效方法

2025年05月04日12pander-it

我有这个 MongoDb 模式:

tags:{ 
"image_uid":"", 
"faces": [ 
    { 
        "image_uid":"", 
        "age_real":"" 
    } 
]} 

女巫我用字典更新

feedbacks = [{ 
                 'face_uid': '02d42dee-3b66-11e2-b12e-e0cb4e12150c', 
                 'age': 23 
             }, 
             { 
                 'face_uid': '02d42dee-3b66-11e2-b12e-e0cb4e12150d', 
                 'age': 23 
             }] 

这样:

 for feedback in feedbacks: 
    tags.update( 
        {'image_uid': image_uid, 'faces.face_uid': feedback['face_uid']}, 
        {"$set": {'faces.$.age_real': feedback['age']}}, w=1 
    ) 

有没有比for循环更高效的方法?

请您参考如下方法:

目前 MongoDB 不支持一次更新多个数组元素。但是,您可以选择使用 Update if Current,而不是按顺序执行多个更新。模式或类似的东西,在本地更新您的文档,然后在数据库上替换它。

另外,查看原文jira ,您可以在评论中找到一些解决方法。