This course is a deep exploration of building applications in MongoDB (the most popular NoSQL document-database). There are many benefits to choosing a NoSQL database over traditional RDMBSs such as SQL Server or Oracle.

Why should you choose this MongoDB course? We have experience building and running large scale MongoDB deployments including our online learning platform LearningLine and itself. The course authors work closely with the MongoDB team and are in the MongoDB Masters program. We have been teaching MongoDB in our Python courses and our Guerrilla .NET course for several years. In short, we know what we’re doing with MongoDB and Python and we’d love to share it with you.


  • Learn why you should consider NoSQL as your database
  • Discover the MongoDB shell and ‘native’ query language and capabilities
  • Work with MongoDB from Python using PyMongo
  • Use a rich ODM (object data mapper) such as MongoEngine
  • Design your classes and entities to take full advantage of MongoDB
  • Build and tune high performance applications with indexing and profiling
  • Work with the file system (GridFS) within MongoDB from Python
  • Answer complex questions while leveraging MongoDB’s scalability using the aggregation framework
  • Learn enough to administration MongoDB servers to be productive
  • Scale out using sharding and replica sets
  • Add security and permissions to MongoDB


This course starts out by looking at why you should choose a NoSQL database in the first place. We will explore the native query language and capabilities of MongoDB. Then we will start working with MongoDB from our Python applications and look at several topics that explore the advanced aspects of the MongoDB Python API including MongoDB from Python, PyMongo, ODMs such as MongoEngine, and more.

We will see how to leverage the immense scalability of MongoDB using the aggregation framework, replica sets, and sharding. You will discover how to store and manage files of virtually unlimited size in MongoDB using GridFS. We will discuss how to properly design your entities and documents (both natively and in Python) to take full advantage of what MongoDB has to offer. Finally, we will round out the course with a few topics that you will need to be successful with MongoDB including Server administration for developers and Security and permissions.

Note that some of the topics cover in this course are technology agnostic (for example the native query lesson is equality applicable to Python developers as well as .NET or Java developers) and some are specifically optimized for Python developers (for example MongoEngine and ODMs).