簡體   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