MongoDB: Python

Accessing MongoDB via Python

These instructions assume that you have already created a MongoDB instance somewhere.

You might have followed these three steps, for example:

If you did so, you’ll be able to look up the MongoDB URI, something such as:

mongodb://<dbuser>:<dbpassword>@ds050559.mlab.com:50559/corgis

The pieces of this are as follows:

hostname port database name
ds050559.mlab.com 50559 corgis

The dbuser and dbpassword are whatever you set them to when you created the database user (they are NOT your mlab.com username and password.)

With this, you are ready to start coding.

Python access via MongoDB

Here are some useful links:

More about MongoDB on mLab

MongoDB is a particular implementation of a NoSQL database. There are multiple hosting providers that offer MongoDB implementations “in the cloud” as a service.

The particular one we’ll be using for SPIS 2016 is called mLab (https://www.mlab.com. We are using mLab because:

Use mLab.com directly, not via the Heroku mLab add-on

Note that we NOT using mLab MongoDB Add-On for Heroku—instead, we are using mLab directly through its own console at https://www.mlab.com.

Wait, why aren’t we using the mLab add-on.

Although it is slightly more convenient to use the Heroku mLab add-on, that add-on requires entering a credit card into Heroku (even though it is free). What using the Heroku add-on buys you is that with one click, you can:

When you use mLab directly, you have to do those steps manually. Fortunately, that isn’t very difficult. It’s just slightly tedious, but you typically only have to do it once per application, and then you never have to worry about it again (at least not for that app.)

As an aside, what is free on Heroku?

In fact, the only free services on Heroku that do not require entering a credit card are:

Flask-PyMongo Python Module

There is a Python module called Flask-PyMongo that we can install with pip install to make working with MongoDB easier.

pip install Flask-PyMongo

You’ll also need to make sure that you add these lines to the requirements.txt file for any webapp that you want to run on Heroku with MongoDB:

Flask-PyMongo==0.4.1
pymongo==3.3.0

More on MongoDB: Python