繁体   English   中英

无法使用python插入mongo db

[英]Cannot insert into mongo db with python

我在mlab上托管一个mongo数据库,并且我有一个非常简单的程序,可将文档插入现有集合中。 由于某种原因,插入在JS中对我有效,但在Python中不起作用。 这是在Python中的样子:

from pymongo import MongoClient

client = MongoClient('mongodb://<user>:<password>@<address>/<db-name>') 
db = client.congresspersons
posts = db.posts
post_data = {
    'title': 'Python and MongoDB',
    'content': 'PyMongo is fun, you guys',
    'author': 'Scott'
}
result = posts.insert_one(post_data)

这段代码大部分来自这里

但是,我不断收到此错误:

pymongo.errors.OperationFailure: not authorized on config to execute command { insert: "congresspersons.posts", ordered: true, documents: [ { content: "PyMongo is fun, you guys", _id: ObjectId('5ab16ae3626b6217f7c2a079'), author: "Scott", title: "Python and MongoDB" } ] }

这些是用户的权限:

{
    ...
    "roles": [
        {
            "role": "dbOwner",
            ...
        }
    ]
}

我不明白为什么这么简单的插入在Python中不起作用。 我该如何工作?

问题db = client.congresspersons ,您可以尝试以下代码

client = MongoClient('mongodb://<user>:<password>@<address>')
db = client['<db-name>']
posts = db['posts_name']
post_data = {
    'title': 'Python and MongoDB',
    'content': 'PyMongo is fun, you guys',
    'author': 'Scott'
}
result = posts.insert_one(post_data)

尽管tuan huynh的回答不能完全解决我的问题,但我还是尝试了一下,它帮助我找到了解决方案:

从pymongo导入MongoClient

我只是说URI与以前一样

db = client.<db-name>
posts = db.<collection-name>

暂无
暂无

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

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