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