我试图将文档输入到我的mongodb测试数据库中的colors集合中,该集合不存在,但是如果不存在则应创建一个。我的以下代码未显示任何名为“ colors”的新集合,据我所了解的教程,我正在通过这些链接12创建一个链接。

该代码给出了
AttributeError:“ ObjectId”对象没有属性“ inserted_id”
如果我不注释掉试图访问insert_one()返回的ObjectId的代码的最后两行。请查看教程,看看我在做什么,以下是我使用pymongo在python中插入代码。该代码运行注释掉最后两行,但未创建任何集合。我正在使用“ Mongo Express”作为mongodb的GUI来查看集合和文档。输入的JSON示例不是我自己的,而是从互联网上使用的。

    #!/usr/bin/env python
from pymongo import MongoClient
#from datetime import datetime
client = MongoClient()
db = client.test
result = db.colors.insert(
        {
         "colorsArray":[{
                        "colorName":"red",
                        "hexValue":"#f00",
                    },
                    {
                        "colorName":"green",
                        "hexValue":"#0f0"
                    },
                    {
                        "colorName":"blue",
                        "hexValue":"#00f"
                    },
                    {
                        "colorName":"cyan",
                        "hexValue":"#0ff"
                    },
                    {
                        "colorName":"magenta",
                        "hexValue":"#f0f"
                    },
                    {
                        "colorName":"yellow",
                        "hexValue":"#ff0"
                    },
                    {
                        "colorName":"black",
                        "hexValue":"#000"
                    }
         ]
     }
)
x = result.inserted_id
print x


[解决了]
更新:Mongo Express无法正常工作,添加的集合没有出现在GUI中,但是在停止mongod服务并重新启动系统然后重新启动mongod服务之后,Mongo Express也解决了这一问题。

最佳答案

代码给出了AttributeError:“ ObjectId”对象没有属性“ inserted_id”


这是因为您正在使用insert方法,该方法返回ObjetId对象;并且ObjectId没有属性inserted_id。您应该使用
insert_one方法。

关于python - 无法通过pymongo中的insert()为mongodb创建集合和属性错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32270572/

10-16 02:40