Connect mongodb from Python in authorized mode
<p>I've created a user for my database in mongodb. I've tested with mongo shell to make sure that the user has proper privileges to access the database.
Now I want to use my Python program to access the database, and I use <a href="http://api.mongodb.com/python/current/tutorial.html" rel="nofollow">PyMongo</a>. If I run mongod in unauthorized mode (without option <code>--auth</code>), the Python client works fine. However, when I use <code>--auth</code> option, the Python client doesn't work any more. In fact, it reports <code>unauthorized error</code>, which is easy to understand because I didn't change anything in the code. Here is the code to connect my <code>test</code> database:</p>

<pre><code>from pymongo import MongoClient
client = MongoClient()
db = client.test
cursor = db.restaurants.find()
for document in cursor:
    print(document)
</code></pre>

<p>My question is how can I change the Python code to use username/password created previously? I've looked at the client documentation but there is not information for it.</p>

<pre><code>client = MongoClient("mongodb://username:password@server/dbname")
</code></pre>

<p>This is the normal format for telling the client where and how to connect. The way you are using (with no parameters at all) defaults to a local mongo install, on the default port, with no authentication. </p>

python mongodb