MongoDB - The Complete Developer's Guide 2021

Master MongoDB Development for Web & Mobile Apps. CRUD Operations, Indexes, Aggregation Framework - All about MongoDB!

4.67 (11136 reviews)



17.5 hours


Nov 2020

Last Update
Regular Price

What you will learn

Use MongoDB to its full potential in future projects

Write efficient and well-performing queries to fetch data in the format you need it

Use all features MongoDB offers you to work with data efficiently




MongoDB is one of the most important NoSQL databases you can work with these days. It's extremely popular and MongoDB developers are in high demand.

No matter if you're building web applications, mobile applications or any other kind of application or if you're a data scientist - you'll need to work with data. Storing data, querying it efficiently and minimizing complexities whilst optimizing performance are crucial tasks.

MongoDB makes working with data simple - it's built on a philosophy that prioritizes performance and efficiency.

In this course, you'll learn all about MongoDB from scratch. No prior MongoDB or database experience is required!

In detail, you'll learn:

  • ... how to install and use MongoDB locally and in the cloud (MongoDB Atlas)

  • ... how to perform CRUD (Create, Read, Update, Delete) operations on MongoDB databases

  • ... how to filter for data efficiently

  • ... how to work with both the Mongo Shell and drivers (e.g. Node.js driver)

  • ... how to increase performance by using indexes (and how to use the right indexes!)

  • ... how to use the amazing "Aggregation Framework" that's built into MongoDB

  • ... what replica sets and sharding are

  • ... how to use MongoDB Atlas - the cloud solution offered by MongoDB

  • ... how to use the serverless platform (Stitch) offered by MongoDB

  • ... and much more!

This course is a hands-on course - you'll learn by writing code/ commands. We'll work on a wide variety of example data and use-cases and by the end of the course, you'll have all the knowledge you need to work with MongoDB in your next project!

This course is for you, no matter which programming language you plan on using, you'll learn a uniform way of interacting with MongoDB that can be easily applied to any language.

This course is for you:

  • ... if you're brand-new to MongoDB and databases in general

  • ... if you got some basic database or even MongoDB experience - in this course, there are different entry points you can choose from!

  • ... if you are a web or mobile app (or desktop app) developer who considers using MongoDB

  • ... if you're working in a team that considers using MongoDB (or already does use it)

  • ... if you are primarily using SQL-based databases so far and you want to explore the most popular NoSQL alternative

This course is NOT for you:

  • ... if you're looking for a guide on administrating MongoDB servers => This course focuses on the commands/ queries you write, it's NOT an administration course. I will show (in detail) how to deploy a ready-to-use cloud MongoDB solution that follows best practices though.


MongoDB - The Complete Developer's Guide 2021
MongoDB - The Complete Developer's Guide 2021
MongoDB - The Complete Developer's Guide 2021
MongoDB - The Complete Developer's Guide 2021




What is MongoDB?

Join our Online Learning Community

The Key MongoDB Characteristics (and how they differ from SQL Databases)

Understanding the MongoDB Ecosystem

Installing MongoDB

MongoDB Installation FAQ + Support

Time To Get Started!

Shell vs Drivers

MongoDB + Clients: The Big Picture

Course Outline

How To Get The Most Out Of The Course

Understanding the Basics & CRUD Operations

Module Introduction

Understanding Databases, Collections & Documents

The Shell & MongoDB Drivers for Different Languages

Creating Databases & Collections

Understanding JSON Data

Comparing JSON & BSON

Create, Read, Update, Delete (CRUD) & MongoDB

Finding, Inserting, Deleting & Updating Elements

Understanding "insertMany()"

Diving Deeper Into Finding Data

"update" vs "updateMany()"

Understanding "find()" & the Cursor Object

Understanding Projection

Embedded Documents & Arrays - The Theory

Working with Embedded Documents

Working with Arrays

Accessing Structured Data

Wrap Up

Useful Resources & Links

Schemas & Relations: How to Structure Documents

Resetting Your Database

Module Introduction

Why Do We Use Schemas?

Structuring Documents

Data Types - An Overview

Data Types in Action

Data Types & Limits

How to Derive your Data Structure - Requirements

Understanding Relations

One To One Relations - Embedded

One To One - Using References

One To Many - Embedded

One To Many - Using References

Many To Many - Embedded

Many To Many - Using References

Summarizing Relations

Using "lookUp()" for Merging Reference Relations

Planning the Example Exercise

Implementing the Example Exercise

Understanding Schema Validation

Adding Collection Document Validation

Changing the Validation Action

Wrap Up

Useful Resources & Links

Exploring The Shell & The Server

Module Introduction

Finding Available Options

Setting "dbpath" & "logpath"

Exploring the MongoDB Options

MongoDB as a Background Service

Using a Config File

Shell Options & Help

Useful Resources & Links

Using the MongoDB Compass to Explore Data Visually

Module Introduction

Exploring the MongoDB Compass

Useful Resources & Links

Diving Into Create Operations

Module Introduction

Creating Documents - An Overview

Understanding "insert()" Methods

Working with Ordered Inserts

Understanding the "writeConcern"

The "writeConcern" in Practice

What is Atomicity?

Importing Data

Wrap Up

Useful Resources & Links

Read Operations - A Closer Look

Module Introduction

Methods, Filters & Operators

Operators - An Overview

Query Selectors & Projection Operators

Understanding "findOne()" & "find()"

Working with Comparison Operators

Querying Embedded Fields & Arrays

Understanding "$in" and "$nin"

"$or" and "$nor"

Understanding the "$and" Operator

Using "$not"

Diving Into Element Operators

Working with "$type"

Understanding Evaluation Operators - "$regex"

Understanding Evaluation Operators - "$expr"

Diving Deeper Into Querying Arrays

Using Array Query Selectors - "$size"

Using Array Query Selectors - "$all"

Using Array Query Selectors - "$elemMatch"

Understanding Cursors

Applying Cursors

Sorting Cursor Results

Skipping & Limiting Cursor Results

Using Projection to Shape our Results

Using Projection in Arrays

Understanding "$slice"

Useful Resources & Links

Update Operations

Module Introduction

Updating Fields with "updateOne()", "updateMany()" and "$set"

Updating Multiple Fields with "$set"

Incrementing & Decrementing Values

Using "$min", "$max" and "$mul"

Getting Rid of Fields

Renaming Fields

Understanding "upsert()"

Updating Matched Array Elements

Updating All Array Elements

Finding & Updating Specific Fields

Adding Elements to Arrays

Removing Elements from Arrays

Understanding "$addToSet"

Wrap Up

Useful Resources & Links

Understanding Delete Operations

Module Introduction

Understanding "deleteOne()" & "deleteMany()"

Deleting All Entries in a Collection

Useful Resources & Links

Working with Indexes

Module Introduction

What Are Indexes & Why Do We Use Them?

Adding a Single Field Index

Indexes Behind the Scenes

Understanding Index Restrictions

Creating Compound Indexes

Using Indexes for Sorting

Understanding the Default Index

Configuring Indexes

Understanding Partial Filters

Applying the Partial Index

Understanding the Time-To-Live (TTL) Index

Query Diagnosis & Query Planning

Understanding Covered Queries

How MongoDB Rejects a Plan

Using Multi-Key Indexes

Understanding Text Indexes

Text Indexes & Sorting

Creating Combined Text Indexes

Using Text Indexes to Exclude Words

Setting the Default Language & Using Weights

Building Indexes

Wrap Up

Useful Resources & Links

Working with Geospatial Data

Module Introduction

Adding GeoJSON Data

Running Geo Queries

Adding a Geospatial Index to Track the Distance

Adding Additional Locations

Finding Places Inside a Certain Area

Finding Out If a User Is Inside a Specific Area

Finding Places Within a Certain Radius

Wrap Up

Useful Resources & Links

Understanding the Aggregation Framework

Module Introduction

What is the Aggregation Framework?

Getting Started with the Aggregation Pipeline

Using the Aggregation Framework

Understanding the Group Stage

Diving Deeper Into the Group Stage

Working with $project

Turning the Location Into a geoJSON Object

Transforming the Birthdate

Using Shortcuts for Transformations

Understanding the $isoWeekYear Operator

$group vs $project

Pushing Elements Into Newly Created Arrays

Understanding the $unwind Stage

Eliminating Duplicate Values

Using Projection with Arrays

Getting the Length of an Array

Using the $filter Operator

Applying Multiple Operations to our Array

Understanding $bucket

Diving Into Additional Stages

How MongoDB Optimizes Your Aggregation Pipelines

Writing Pipeline Results Into a New Collection

Working with the $geoNear Stage

Wrap Up

Useful Resources & Links

Working with Numeric Data

Module Introduction

Number Types - An Overview

MongoDB Shell & Data Types

Understanding Programming Language Defaults

Working with int32

Working with int64

Doing Maths with Floats int32s & int64s

What's Wrong with Normal Doubles?

Working with Decimal 128bit

Wrap Up

Useful Resources & Links

MongoDB & Security

Module Introduction

Understanding Role Based Access Control

Roles - Examples

Creating a User

Built-In Roles - An Overview

Assigning Roles to Users & Databases

Updating & Extending Roles to Other Databases

Adding SSL Transport Encryption

Encryption at REST

Wrap Up

Useful Resources & Links

Performance, Fault Tolerancy & Deployment

Module Introduction

What Influences Performance?

Understanding Capped Collections

What are Replica Sets?

Understanding Sharding

Deploying a MongoDB Server

Using MongoDB Atlas

Backups & Setting Alerts in MongoDB Atlas

Connecting to our Cluster

Wrap Up

Useful Resources & Links


Module Introduction

What are Transactions?

A Typical Usecase

How Does a Transaction Work?

Useful Resources & Links

From Shell to Driver

Module Introduction

Splitting Work Between the Driver & the Shell

Preparing our Project

Installing Visual Studio Code

Installing the Node.js Driver

Connecting Node.js & the MongoDB Cluster

Storing Products in the Database

Storing the Price as 128bit Decimal

Fetching Data From the Database

Creating a More Realistic Setup

Getting a Single Product

Editing & Deleting Products

Implementing Pagination

Adding an Index

Signing Users Up

Adding an Index to Make the Email Unique

Adding User Sign In

Wrap Up

Useful Resources & Links

Introducing Stitch

Module Introduction

What is Stitch?


Start Using Stitch

Adding Stitch to our App & Initializing It

Adding Authentication

Sending Data Access Rules

Fetching & Converting Data

Deleting Products

Finding a Single Product

Adding Products

Updating Products

Switching to User Email & Password Authentication

Adding User Sign Up & Confirmation

Adding User Login

Rules & Real Users

The Current State of Authentication

Functions & Triggers

Wrap Up

Useful Resources & Links


Course Roundup

Course Slides

Bonus: More Content!


May29 September 2020

This is more amazing coursing more than expected. I really recommend to all if you want to know about MongoDB, you should join this course. I have more knowledge about MongDB after this course. Thank you very much to Maximilian Schwarzmuller and wish you all the best.

Nilanjan27 September 2020

I need such kind of course which teaches me Database Technology in depth. As a lover of NodeJS, I need to learn about MongoDB. So this course is super beneficial for me to grow as a Backend Developer.

Federico26 September 2020

I'm using MongoDB as a data storage service for a web application. I started with no prior knowledge and this course is giving me a lot of chances. Also, having a great teacher as Max is, is improving a lot my skills ?

Sima25 September 2020

Great teacher! I bought many of Max's courses and am very happy with his teaching style. However I am really disappointed by Udemy product. The video red bar keeps blinking which is extremely annoying. And a black bar appears on the video content showing how many people commented on the video! Who cares? It is really annoying to use Udemy. I wish there was a better product :-(

Eduardo24 September 2020

Estuvo muy bien explicado, pase de no saber absolutamente nada de mongoDB a los detalles mas importantes que un desarrollador necesita saber.

Dilip16 February 2020

Going gr8. Max is really taking thru all syntaxes very religiously. I am sure Max knows a hell lot out of this course. A Genius, explaining step by step all points with coding. Thanks Max you are a wonderful instructor.

Les14 February 2020

Great course Max. WIll certainly be beneficial when it comes to app design and how it all ties in to the back end. Now i need to practice... Thanks very much

Ahmad12 February 2020

This is great. Coming from SQL background, this course really helps in understanding the concept of NoSQL database.

Supratim10 February 2020

i like the way you are teaching , besically i do not know about the subject before so its little confusing to me right now

Eldhose8 February 2020

He is an amazing teacher who can teach you concept very well. This is an amazing course to learn mongoDB. If you have doubt on my word , click https://www.youtube.com/watch?v=3fj9sx7UXfE&list=PL55RiY5tL51oGJorjEgl6NVeDbx_fO5jR&index=14 to visit his YouTube channel

Cory6 February 2020

Great course for really digging into MongoDB. Max has several great courses, and this particular course fits nicely with his collections. For those looking for more than NoSQL CRUD or want to see its utilization for front-end frameworks, check out his other courses as well (this was not intended to be a promo, but certainly sounds like one. However, Max, Stephen Grider, and Colt Steele have been my favorite Udemy instructors for quite sometime, and I do not expect that to change!)

Jaime6 February 2020

Very clear explanation so far. The teacher gives very good classes that keep you interested in the course.

Magdalena3 February 2020

I'm very pleased with this course, everything was very well explained. It's an amazing background to build something special in the future, big thanks to the creators.

Rodrigo30 January 2020

This is the third course in a row that I'm studying with Maxmillian teaching method. That's really impressive how he can deliver an incredible quality content in all of his courses. Congratulations

Paola29 January 2020

It looks really interesting and well explained. I think this course will help me to achieve my goals.


Udemy ID


Course created date


Course Indexed date
Course Submitted by

Android PlayStore
Apple Appstore