MongoDB - The Complete Developer's Guide
Master MongoDB Development for Web & Mobile Apps. CRUD Operations, Indexes, Aggregation Framework - All about MongoDB!
Start courseMongoDB 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.
Course content
Section 1Getting Started
- Introduction2:04
- What is MongoDB?5:36
- The Key MongoDB Characteristics (and how they differ from SQL Databases)2:55
- Join our Online Learning Community1:00
- Understanding the MongoDB Ecosystem4:19
- Installing MongoDB10:35
- Time To Get Started!5:37
- Shell vs Drivers3:29
- MongoDB + Clients: The Big Picture2:58
- Course Outline4:38
- How To Get The Most Out Of The Course2:30
Section 2Understanding the Basics & CRUD Operations
- Module IntroductionPremium1:30
- Understanding Databases, Collections & DocumentsPremium3:47
- The Shell & MongoDB Drivers for Different LanguagesPremium2:40
- Creating Databases & CollectionsPremium3:16
- Understanding JSON DataPremium4:05
- Comparing JSON & BSONPremium5:23
- Create, Read, Update, Delete (CRUD) & MongoDBPremium5:37
- Finding, Inserting, Deleting & Updating ElementsPremium7:47
- Understanding "insertMany()"Premium1:48
- Diving Deeper Into Finding DataPremium3:55
- "update" vs "updateMany()"Premium4:41
- Understanding "find()" & the Cursor ObjectPremium7:30
- Understanding ProjectionPremium3:38
- Embedded Documents & Arrays - The TheoryPremium1:56
- Working with Embedded DocumentsPremium2:28
- Working with ArraysPremium1:43
- Accessing Structured DataPremium4:39
- Assignment - The Basics & CRUD Operations (Problem)Premium2:37
- Assignment - The Basics & CRUD Operations (Solution)Premium6:57
- Wrap UpPremium2:47
- Useful Resources & LinksPremium1:00
Section 3Schemas & Relations: How to Structure Documents
- Module IntroductionPremium2:12
- Why Do We Use Schemas?Premium3:57
- Structuring DocumentsPremium7:43
- Data Types - An OverviewPremium6:23
- Data Types in ActionPremium12:15
- How to Derive your Data Structure - RequirementsPremium5:07
- Understanding RelationsPremium2:58
- One To One Relations - EmbeddedPremium6:20
- One To One - Using ReferencesPremium4:54
- One To Many - EmbeddedPremium5:07
- One To Many - Using ReferencesPremium4:04
- Many To Many - EmbeddedPremium7:16
- Many To Many - Using ReferencesPremium5:25
- Summarizing RelationsPremium2:18
- Using "lookUp()" for Merging Reference RelationsPremium4:35
- Planning the Example ExercisePremium6:56
- Implementing the Example ExercisePremium4:16
- Understanding Schema ValidationPremium2:57
- Adding Collection Document ValidationPremium9:07
- Changing the Validation ActionPremium3:43
- Wrap UpPremium4:08
- Useful Resources & LinksPremium1:00
Section 4Exploring The Shell & The Server
- Module IntroductionPremium1:01
- Finding Available OptionsPremium2:15
- Setting "dbpath" & "logpath"Premium4:41
- Exploring the MongoDB OptionsPremium2:00
- MongoDB as a Background ServicePremium3:09
- Using a Config FilePremium3:02
- Shell Options & HelpPremium4:12
- Useful Resources & LinksPremium1:00
Section 5Using the MongoDB Compass to Explore Data Visually
- Module IntroductionPremium0:50
- Exploring the MongoDB CompassPremium5:50
- Useful Resources & LinksPremium1:00
Section 6Diving Into Create Operations
- Module IntroductionPremium1:12
- Creating Documents - An OverviewPremium1:47
- Understanding "insert()" MethodsPremium6:10
- Working with Ordered InsertsPremium7:47
- Understanding the "writeConcern"Premium5:44
- The "writeConcern" in PracticePremium4:09
- What is Atomicity?Premium2:39
- Assignment - Create Operations (Problem)Premium1:34
- Assignment - Create Operations (Solution)Premium5:23
- Importing DataPremium3:37
- Wrap UpPremium2:38
- Useful Resources & LinksPremium1:00
Section 7Read Operations - A Closer Look
- Module IntroductionPremium1:40
- Methods, Filters & OperatorsPremium2:54
- Operators - An OverviewPremium3:02
- Query Selectors & Projection OperatorsPremium1:16
- Understanding "findOne()" & "find()"Premium4:32
- Working with Comparison OperatorsPremium5:20
- Querying Embedded Fields & ArraysPremium4:52
- Understanding "$in" and "$nin"Premium2:37
- "$or" and "$nor"Premium5:31
- Understanding the "$and" OperatorPremium5:04
- Using "$not"Premium1:35
- Diving Into Element OperatorsPremium5:30
- Working with "$type"Premium2:52
- Understanding Evaluation Operators - "$regex"Premium3:23
- Understanding Evaluation Operators - "$expr"Premium9:37
- Assignment - Read Operations (Problem)Premium1:23
- Assignment - Read Operations (Solution)Premium6:34
- Diving Deeper Into Querying ArraysPremium4:09
- Using Array Query Selectors - "$size"Premium2:09
- Using Array Query Selectors - "$all"Premium2:12
- Using Array Query Selectors - "$elemMatch"Premium4:52
- Assignment - Array Query Selectors (Problem)Premium1:11
- Assignment - Array Query Selectors (Solution)Premium4:08
- Understanding CursorsPremium2:47
- Applying CursorsPremium6:02
- Sorting Cursor ResultsPremium3:09
- Skipping & Limiting Cursor ResultsPremium3:31
- Using Projection to Shape our ResultsPremium4:01
- Using Projection in ArraysPremium5:12
- Understanding "$slice"Premium3:05
- Useful Resources & LinksPremium1:00
Section 8Update Operations
- Module IntroductionPremium1:01
- Updating Fields with "updateOne()", "updateMany()" and "$set"Premium7:52
- Updating Multiple Fields with "$set"Premium1:40
- Incrementing & Decrementing ValuesPremium3:33
- Using "$min", "$max" and "$mul"Premium3:15
- Getting Rid of FieldsPremium2:04
- Renaming FieldsPremium1:20
- Understanding "upsert()"Premium4:01
- Assignment - Update Operations (Problem)Premium1:28
- Assignment - Update Operations (Solution)Premium4:42
- Updating Matched Array ElementsPremium6:56
- Updating All Array ElementsPremium6:27
- Finding & Updating Specific FieldsPremium5:35
- Adding Elements to ArraysPremium4:46
- Removing Elements from ArraysPremium2:34
- Understanding "$addToSet"Premium1:18
- Wrap UpPremium1:39
- Useful Resources & LinksPremium1:00
Section 9Understanding Delete Operations
- Module IntroductionPremium0:31
- Understanding "deleteOne()" & "deleteMany()"Premium4:08
- Deleting All Entries in a CollectionPremium2:00
- Useful Resources & LinksPremium1:00
Section 10Working with Indexes
- Module IntroductionPremium1:19
- What Are Indexes & Why Do We Use Them?Premium4:18
- Adding a Single Field IndexPremium8:06
- Understanding Index RestrictionsPremium2:51
- Creating Compound IndexesPremium7:14
- Using Indexes for SortingPremium2:25
- Understanding the Default IndexPremium0:59
- Configuring IndexesPremium2:28
- Understanding Partial FiltersPremium6:07
- Applying the Partial IndexPremium3:37
- Understanding the Time-To-Live (TTL) IndexPremium3:55
- Query Diagnosis & Query PlanningPremium2:10
- Understanding Covered QueriesPremium3:34
- How MongoDB Rejects a PlanPremium7:37
- Using Multi-Key IndexesPremium8:15
- Understanding Text IndexesPremium6:09
- Text Indexes & SortingPremium2:21
- Creating Combined Text IndexesPremium2:54
- Using Text Indexes to Exclude WordsPremium0:54
- Setting the Default Language & Using WeightsPremium6:31
- Building IndexesPremium7:40
- Wrap UpPremium2:24
- Useful Resources & LinksPremium1:00
Section 11Working with Geospatial Data
- Module IntroductionPremium0:53
- Adding GeoJSON DataPremium4:51
- Running Geo QueriesPremium3:22
- Adding a Geospatial Index to Track the DistancePremium2:52
- Adding Additional LocationsPremium3:34
- Finding Places Inside a Certain AreaPremium6:22
- Finding Out If a User Is Inside a Specific AreaPremium5:27
- Finding Places Within a Certain RadiusPremium5:38
- Assignment - Geospatial Data (Problem)Premium2:28
- Assignment - Geospatial Data (Solution)Premium13:39
- Wrap UpPremium1:40
- Useful Resources & LinksPremium1:00
Section 12Understanding the Aggregation Framework
- Module IntroductionPremium1:34
- What is the Aggregation Framework?Premium1:59
- Getting Started with the Aggregation PipelinePremium1:21
- Using the Aggregation FrameworkPremium3:12
- Understanding the Group StagePremium5:56
- Diving Deeper Into the Group StagePremium3:12
- Assignment - Aggregation Framework (Problem)Premium1:03
- Assignment - Aggregation Framework (Solution)Premium4:01
- Working with $projectPremium9:58
- Turning the Location Into a geoJSON ObjectPremium7:59
- Transforming the BirthdatePremium3:48
- Using Shortcuts for TransformationsPremium1:25
- Understanding the $isoWeekYear OperatorPremium2:40
- $group vs $projectPremium0:55
- Pushing Elements Into Newly Created ArraysPremium4:03
- Understanding the $unwind StagePremium2:50
- Eliminating Duplicate ValuesPremium0:50
- Using Projection with ArraysPremium3:03
- Getting the Length of an ArrayPremium1:11
- Using the $filter OperatorPremium4:43
- Applying Multiple Operations to our ArrayPremium7:30
- Understanding $bucketPremium6:16
- Diving Into Additional StagesPremium7:29
- Writing Pipeline Results Into a New CollectionPremium1:47
- Working with the $geoNear StagePremium5:16
- Wrap UpPremium2:41
- Useful Resources & LinksPremium1:00
Section 13Working with Numeric Data
- Module IntroductionPremium0:54
- Number Types - An OverviewPremium6:28
- Understanding Programming Language DefaultsPremium3:33
- Working with int32Premium5:17
- Working with int64Premium6:32
- Doing Maths with Floats int32s & int64sPremium6:57
- What's Wrong with Normal Doubles?Premium4:20
- Working with Decimal 128bitPremium4:14
- Wrap UpPremium1:40
- Useful Resources & LinksPremium1:00
Section 14MongoDB & Security
- Module IntroductionPremium4:23
- Understanding Role Based Access ControlPremium6:47
- Roles - ExamplesPremium2:13
- Creating a UserPremium5:50
- Built-In Roles - An OverviewPremium5:39
- Assigning Roles to Users & DatabasesPremium4:48
- Updating & Extending Roles to Other DatabasesPremium5:06
- Assignment - Security (Problem)Premium1:31
- Assignment - Security (Solution)Premium6:42
- Adding SSL Transport EncryptionPremium10:20
- Encryption at RESTPremium1:25
- Wrap UpPremium3:21
- Useful Resources & LinksPremium1:00
Section 15Performance, Fault Tolerancy & Deployment
- Module IntroductionPremium1:52
- What Influences Performance?Premium3:01
- Understanding Capped CollectionsvPremium5:05
- What are Replica Sets?Premium4:36
- Understanding ShardingPremium6:13
- Deploying a MongoDB ServerPremium2:25
- Using MongoDB AtlasPremium9:17
- Backups & Setting Alerts in MongoDB AtlasPremium1:27
- Connecting to our ClusterPremium3:36
- Wrap UpPremium1:58
- Useful Resources & LinksPremium1:00
Section 16Transactions
- Module IntroductionPremium1:04
- What are Transactions?Premium2:03
- A Typical UsecasePremium2:17
- How Does a Transaction Work?Premium7:42
- Useful Resources & LinksPremium1:00
Section 17From Shell to Driver
- Module IntroductionPremium2:13
- Splitting Work Between the Driver & the ShellPremium2:06
- Preparing our ProjectPremium4:49
- Installing Visual Studio CodePremium1:46
- Installing the Node.js DriverPremium4:56
- Connecting Node.js & the MongoDB ClusterPremium6:31
- Storing Products in the DatabasePremium4:53
- Storing the Price as 128bit DecimalPremium6:10
- Fetching Data From the DatabasePremium6:23
- Creating a More Realistic SetupPremium11:48
- Getting a Single ProductPremium3:20
- Editing & Deleting ProductsPremium7:28
- Implementing PaginationPremium4:58
- Adding an IndexPremium1:27
- Signing Users UpPremium7:03
- Adding an Index to Make the Email UniquePremium1:13
- Adding User Sign InPremium5:18
- Wrap UpPremium1:11
- Useful Resources & LinksPremium1:00
Section 18Introducing Stitch
- Module IntroductionPremium1:42
- Stitch & MongoDB RealmPremium1:00
- What is Stitch?Premium7:22
- PreparationsPremium2:04
- Start Using StitchPremium4:33
- Adding Stitch to our App & Initializing ItPremium8:11
- Adding AuthenticationPremium2:47
- Sending Data Access RulesPremium3:57
- Fetching & Converting DataPremium1:49
- Deleting ProductsPremium3:02
- Finding a Single ProductPremium4:09
- Adding ProductsPremium3:29
- Updating ProductsPremium3:46
- Switching to User Email & Password AuthenticationPremium1:54
- Adding User Sign Up & ConfirmationPremium6:32
- Adding User LoginPremium3:42
- Rules & Real UsersPremium1:48
- The Current State of AuthenticationPremium1:00
- Functions & TriggersPremium5:01
- Wrap UpPremium0:56
- Useful Resources & LinksPremium1:00
Section 19Roundup
- Course RoundupPremium3:05
Course instructor
Maximilian Schwarzmüller
As a self-taught professional I really know the hard parts and the difficult topics when learning new or improving on already-known languages. This background and experience enable me to focus on the most relevant key concepts and topics. My track record of many 5-star rated courses, more than 1,000,000 students worldwide as well as a successful YouTube channel is the best proof for that.
The most rewarding experience for me is to see how people find new, better jobs, build awesome web applications, work on amazing projects or simply enjoy their hobby with the help of my content. That's why, together with Manuel Lorenz, I founded Academind to offer the best possible learning experience and to share the pleasure of learning with our students.