MongoDB for Developers with Python Course

Course Summary

MongoDB is one of the most exciting data technologies. You can build extremely high performance apps with the joy of a schemaless lifestyle. Python is the perfect counterpart to MongoDB and that's what this course is all about.

What students are saying

The Effective PyCharm course by Michael Kennedy is one huge lightbulb moment for me. I was probably using 10% of its features.
-- Paul C.

Source code and course GitHub repository

github.com/mikeckennedy/mongodb-for-python-for-developers

What's this course about and how is it different?

This course will teach you how to use MongoDB and document databases to build simpler and faster data-driven applications.

We start by explaining the origin and major concepts of NoSQL and document databases. You then learn how to work with MongoDB from its native shell as well as from Python using PyMongo.

Many MongoDB courses stop there. This course is meant to be a practical end-to-end coverage of MongoDB. We go beyond scratching the surface by covering real-world topics.

You'll see how to use mongoengine (a popular ODM for MongoDB - think ORM for NoSQL) to map classes to MongoDB. This brings many benefits including features not available in MongoDB (like type verification on fields, etc.).

After we master working with MongoDB from Python, we'll turn our attention to performance. We take a large database with millions of data points and make it run hundreds of times faster than you get out-of-the-box with MongoDB.

We wrap up the course by deploying MongoDB to production Linux servers. There are a few very important steps to getting MongoDB running in production and we'll go step-by-step through this setup.

In the end, you'll be ready to start building and running high performance, MongoDB-backed, data-driven applications.

View the full course outline.

Who is this course for?

Anyone who knows Python and would like to learn how to use NoSQL, MongoDB, and document databases to build amazing applications.

What will you learn in this course?

Some topics covered include.

  • Exactly what NoSQL means and the origins of NoSQL databases
  • How to install and configure MongoDB on your operating system
  • MongoDB's native query syntax
  • Searching subdocuments and other advanced queries
  • How to use MongoDB's atomic, transactional operators
  • Using PyMongo to connect to MongoDB from Python
  • Mapping classes from Python to MongoDB with mongoengine
  • Document design and data modeling techniques
  • How to tune MongoDB for high performance
  • To deploy MongoDB into production with SSL, authentication, auto-updates and more

View the full course outline.

Concepts backed by concise visuals

While exploring a topic interactively with demos and live code is very engaging, it can lose the forest for the trees. That's why when we hit a new topic, we stop and discuss it with concise and clear visuals.

Here's an example for when we first introduce performance tuning in MongoDB.

Example: Concepts backed by concise visuals

Follow along with subtitles and transcripts

Each course comes with subtitles and full transcripts. The transcripts are available as a separate searchable page for each lecture. They also are available in course-wide search results to help you find just the right lecture.

Each course has subtitles available in the video player.

Get hands-on for almost every chapter

Learning to code is an interactive experience. That's why it's important to write async code and explore the apps we build during this course. Most chapters have code samples stored in the GitHub repo saved at various stages throughout the chapter. This means you can grab whichever one you want and start trying the code for yourself.

Who am I? Why should you take my course?

Who is Michael Kennedy?

My name is Michael, nice to meet you. ;) There are a couple of reasons I'm especially qualified to teach you Python.

 1. I'm the host of the #1 podcast on Python called Talk Python To Me. Over there, I've interviewed many of the leaders and creators in the Python community. I bring that perspective to all the courses I create.

 2. I've been a professional software trainer for over 10 years. I have taught literally thousands of professional developers in hundreds of courses throughout the world.

 3. Students have loved my courses. Here are just a few quotes from past students of mine.

"Michael is super knowledgeable, loves his craft, and he conveys it all well. I would highly recommend his training class anytime." - Robert F.
"Michael is simply an outstanding instructor." - Kevin R.
"Michael was an encyclopedia for the deep inner workings of Python. Very impressive." - Neal L.

Free office hours keep you from getting stuck

One of the challenges of self-paced online learning is getting stuck. It can be hard to get the help you need to get unstuck.

That's why at Talk Python Training, we offer live, online office hours. You drop in and join a group of fellow students to chat about your course progress and see solutions via screen sharing.

Just visit your account page to see the upcoming office hour schedule.

Is this course based on Python 3 or Python 2?

This course is based upon Python 3. Python 2 is officially unsupported as of January 1st, 2020 and we believe that it would be ill-advised to teach or learn Python 2. This course is, and has always been, built around Python 3.

The time to act is now

Go beyond just learning MongoDB. Deeply understand this powerful database and build high-performance, data-driven applications.

Course Outline: Chapters and Lectures

Welcome to the course
12:46
Welcome!
2:04
MongoDB is loved
1:34
Course topics
5:07
Tools that you will learn
1:08
Meet your instructor
0:48
Video player: A quick feature tour
2:05
What is NoSQL?
23:53
NoSQL history
2:34
Origins of NoSQL
2:18
Types of NoSQL databases
4:34
Working with document DBs and queries styles
5:12
Introducing MongoDB
3:22
Who uses MongoDB
5:53
Setting up your computer to follow along
29:11
MongoDB and the tools we will use
4:37
Setting up MongoDB as a Windows service
10:07
Concept: MongoDB as a Windows service
2:25
Setting up MongoDB on macOS
4:11
Concept: Setting up MongoDB on macOS
1:17
Setting up MongoDB on Linux
5:09
Concept: Setting up MongoDB on Linux
1:25
MongoDB's shell and native query syntax
55:07
MongoDB's query syntax
3:54
Connecting to MongoDB with the shell
5:18
Concept: Connecting to MongoDB with the shell
1:27
Basic querying
10:13
Concept: Basic querying
2:33
Robomongo: A better shell
5:35
Advanced queries
3:44
Concept: Advanced queries
2:02
Projections
1:22
Exact subdocument matches
2:03
Sorting MongoDB results
3:24
Concept: Sorting MongoDB results
1:06
Inserting documents in MongoDB
1:26
Updating documents in MongoDB
2:02
Deleting documents form MongoDB
0:33
Atomic, in-place updates
5:11
Concept: Atomic, in-place updates
3:14
Working with MongoDB directly from Python: PyMongo
27:52
Introduction to PyMongo
2:53
Connecting with PyMongo
8:02
Concepts: Getting starting with PyMongo
3:24
Concept: Connection strings
3:08
Atomic updates
5:35
Concept: Atomic updates
2:23
Mapping MongoDB's JavaScript API to PyMongo
2:27
Modeling and document design
22:12
Introduction to document design
3:54
To embed or not to embed
5:22
Do you have an integration database?
3:29
A real world example
8:07
More document patterns
1:20
Mapping classes to MongoDB with the ODM MongoEngine
1:28:03
Introducing ODMs
4:15
Welcome to mongoengine
1:54
The dealership demo
1:39
Introducing the application skeleton
3:32
Registering connections in mongoengine
4:42
Basic classes in mongoengine
8:57
Required and default values in mongoengine classes
4:02
Adding the engine to the car document
6:43
Adding service histories to the car document
5:03
Listing cars
7:32
Adding service histories by whole document
5:11
Adding service histories with in-place updates
6:08
Subdocument queries
7:08
A parting glitch
7:10
Concept: Registering connections
2:17
Concept: Creating classes
3:07
Concept: Inserting objects with mongoengine
1:38
Concept: Querying with mongoengine
3:32
Concept: Updates in mongoengine
3:33
High-performance MongoDB
1:01:24
Introducing performance-tuning in MongoDB
3:10
The MongoDBs performance knobs
6:57
A popular dealership
1:42
Creating the big DB
2:49
Surveying the new code
5:36
Running the default configuration
10:15
Adding indexes in mongoenegine
20:04
Concept: Indexes via the shell
1:49
Concept: Indexes via mongoengine
1:52
Concept: Document design for performance
5:04
Concept: Projections
2:06
Deploying MongoDB in production (and playing it safe)
1:13:39
Warning: Action required
4:37
The MongoDB deployment checklist
2:37
Creating a couple of cloud servers
8:30
Installing MongoDB for production use
9:35
Concept: Installing MongoDB for production
1:11
Limit you network exposure
1:14
Limit you network exposure in action
6:05
Concept: Limit network exposure
1:49
Adding encrypted communication for MongoDB
5:08
Concept: Adding encrypted communication for MongoDB
1:09
Adding authentication to MongoDB
5:20
Concept: Adding authentication to MongoDB
1:01
The BIG moment
3:35
Connecting to MongoDB via Python
10:26
Concept: Connecting to MongoDB via Python
1:22
MongoDB admin tools
7:15
Concept: MongoDB admin tools
2:45
Course conclusion
19:12
You've done it!
1:08
Lightning review
1:01
Lightning review: Shell query syntax
1:46
Lightning review: pymongo
3:26
Lightning review: Document design
2:39
Lightning review: mongoengine
3:56
Lightning review: Performance tuning MongoDB
2:34
Lightning review: Deployments
2:20
Thanks and goodbye
0:22
Buy for $59 + tax Bundle and save 85% Team Gift

Questions? Send us an email: contact@talkpython.fm

Talk Python's Mastodon Michael Kennedy's Mastodon