For an introduction to Databases, and their role in webapps, see the article:

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 ( We are using mLab because:

Use 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

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.

To install it on ACMS, use:

pip install --user Flask-PyMongo

on Windows or Mac, just:

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: