繁体   English   中英

如何使用Pymongo在文档中插入对象?

[英]How insert an object inside a document using Pymongo?

我正在使用Pymongo操作一个具有如下结构的集合女巫:

{
    Client1:{
        "_id" : "Client1"
        Project1:{
            Software1:{
                language : "Python",
                complexity : "Low"
            }
            Software2:{
                language : "C#",
                complexity : "Low"
            }
            Software3:{
                language : "Java",
                complexity : "Hard"
            }
        }
    }
}

在这种情况下,我尝试了许多方法来更新文档Client1插入新Software ,但我找不到方法或功能来执行此操作。

所以我的问题是:在此范围内,如何在不排除现有项目的情况下插入新Software

这是我尝试但没有奏效的方法:

client = "Client1"
client = collection.find_one({"_id": client})

project = "Project1"

software = str(raw_input("Enter with the software to be added to project: "))

language = str(raw_input("Enter with the software language: "))

complexity = str(raw_input("Enter with the software complexity: "))

collection.update({"_id" : client["_id"], }, {"$set" : {
                                                            client[project] : {software : {"language": language, "complexity" : complexity}}
                                                        }
                                               })

我得到的错误是: unhashable type: 'dict'包含client[project] : {software : {"language": language, "complexity" : complexity}}的行中的unhashable type: 'dict' client[project] : {software : {"language": language, "complexity" : complexity}}

从现在开始,感谢您的关注!

您正在尝试使用不可变的变量在dict中创建密钥。 在这种情况下, client[project]是一个dict,你将其用作另一个dict中的键。 我想你只想让你的钥匙成为project

project : {software : {"language": language, "complexity" : complexity}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM