Autoplay
Autocomplete
Previous Lesson
Complete and Continue
MongoDB - The Complete Developer's Guide
Getting Started
Introduction (2:04)
What is MongoDB? (5:36)
The Key MongoDB Characteristics (and how they differ from SQL Databases) (2:55)
Join our Online Learning Community
Understanding the MongoDB Ecosystem (4:19)
General Setup Instructions & macOS Installation (16:52)
Windows Installation (8:10)
Installing The MongoDB Shell (5:10)
Installing "mongoimport"
Time To Get Started! (5:37)
Shell vs Drivers (3:29)
MongoDB + Clients: The Big Picture (2:58)
Course Outline (4:38)
How To Get The Most Out Of The Course (2:30)
The Academind Pro Referral Program
Understanding the Basics & CRUD Operations
Module Introduction (1:30)
Understanding Databases, Collections & Documents (3:47)
The Shell & MongoDB Drivers for Different Languages (2:40)
Creating Databases & Collections (3:16)
Understanding JSON Data (4:05)
Comparing JSON & BSON (5:23)
Create, Read, Update, Delete (CRUD) & MongoDB (5:37)
Finding, Inserting, Deleting & Updating Elements (7:47)
Understanding "insertMany()" (1:48)
Diving Deeper Into Finding Data (3:55)
"update" vs "updateMany()" (4:41)
Understanding "find()" & the Cursor Object (7:30)
Understanding Projection (3:38)
Embedded Documents & Arrays - The Theory (1:56)
Working with Embedded Documents (2:28)
Working with Arrays (1:43)
Accessing Structured Data (4:39)
Assignment - The Basics & CRUD Operations (Problem) (2:37)
Assignment - The Basics & CRUD Operations (Solution) (6:57)
Wrap Up (2:47)
Useful Resources & Links
Schemas & Relations: How to Structure Documents
Module Introduction (2:12)
Why Do We Use Schemas? (3:57)
Structuring Documents (7:43)
Data Types - An Overview (6:23)
Data Types in Action (12:15)
How to Derive your Data Structure - Requirements (5:07)
Understanding Relations (2:58)
One To One Relations - Embedded (6:20)
One To One - Using References (4:54)
One To Many - Embedded (5:07)
One To Many - Using References (4:04)
Many To Many - Embedded (7:16)
Many To Many - Using References (5:25)
Summarizing Relations (2:18)
Using "lookUp()" for Merging Reference Relations (4:35)
Planning the Example Exercise (6:56)
Implementing the Example Exercise (4:16)
Understanding Schema Validation (2:57)
Adding Collection Document Validation (9:07)
Changing the Validation Action (3:43)
Wrap Up (4:08)
Useful Resources & Links
Exploring The Shell & The Server
Module Introduction (1:01)
Finding Available Options (2:15)
Setting "dbpath" & "logpath" (4:41)
Exploring the MongoDB Options (2:00)
MongoDB as a Background Service (3:09)
Using a Config File (3:02)
Shell Options & Help (4:12)
Useful Resources & Links
Using the MongoDB Compass to Explore Data Visually
Module Introduction (0:50)
Exploring the MongoDB Compass (5:50)
Useful Resources & Links
Diving Into Create Operations
Module Introduction (1:12)
Creating Documents - An Overview (1:47)
Understanding "insert()" Methods (6:10)
Working with Ordered Inserts (7:47)
Understanding the "writeConcern" (5:44)
The "writeConcern" in Practice (4:09)
What is Atomicity? (2:39)
Assignment - Create Operations (Problem) (1:34)
Assignment - Create Operations (Solution) (5:23)
Importing Data (3:37)
Wrap Up (2:38)
Useful Resources & Links
Read Operations - A Closer Look
Module Introduction (1:40)
Methods, Filters & Operators (2:54)
Operators - An Overview (3:02)
Query Selectors & Projection Operators (1:16)
Understanding "findOne()" & "find()" (4:32)
Working with Comparison Operators (5:20)
Querying Embedded Fields & Arrays (4:52)
Understanding "$in" and "$nin" (2:37)
"$or" and "$nor" (5:31)
Understanding the "$and" Operator (5:04)
Using "$not" (1:35)
Diving Into Element Operators (5:30)
Working with "$type" (2:52)
Understanding Evaluation Operators - "$regex" (3:23)
Understanding Evaluation Operators - "$expr" (9:37)
Assignment - Read Operations (Problem) (1:23)
Assignment - Read Operations (Solution) (6:34)
Diving Deeper Into Querying Arrays (4:09)
Using Array Query Selectors - "$size" (2:09)
Using Array Query Selectors - "$all" (2:12)
Using Array Query Selectors - "$elemMatch" (4:52)
Assignment - Array Query Selectors (Problem) (1:11)
Assignment - Array Query Selectors (Solution) (4:08)
Understanding Cursors (2:47)
Applying Cursors (6:02)
Sorting Cursor Results (3:09)
Skipping & Limiting Cursor Results (3:31)
Using Projection to Shape our Results (4:01)
Using Projection in Arrays (5:12)
Understanding "$slice" (3:05)
Useful Resources & Links
Update Operations
Module Introduction (1:01)
Updating Fields with "updateOne()", "updateMany()" and "$set" (7:52)
Updating Multiple Fields with "$set" (1:40)
Incrementing & Decrementing Values (3:33)
Using "$min", "$max" and "$mul" (3:15)
Getting Rid of Fields (2:04)
Renaming Fields (1:20)
Understanding "upsert()" (4:01)
Assignment - Update Operations (Problem) (1:28)
Assignment - Update Operations (Solution) (4:42)
Updating Matched Array Elements (6:56)
Updating All Array Elements (6:27)
Finding & Updating Specific Fields (5:35)
Adding Elements to Arrays (4:46)
Removing Elements from Arrays (2:34)
Understanding "$addToSet" (1:18)
Wrap Up (1:39)
Useful Resources & Links
Understanding Delete Operations
Module Introduction (0:31)
Understanding "deleteOne()" & "deleteMany()" (4:08)
Deleting All Entries in a Collection (2:00)
Useful Resources & Links
Working with Indexes
Module Introduction (1:19)
What Are Indexes & Why Do We Use Them? (4:18)
Adding a Single Field Index (8:06)
Understanding Index Restrictions (2:51)
Creating Compound Indexes (7:14)
Using Indexes for Sorting (2:25)
Understanding the Default Index (0:59)
Configuring Indexes (2:28)
Understanding Partial Filters (6:07)
Applying the Partial Index (3:37)
Understanding the Time-To-Live (TTL) Index (3:55)
Query Diagnosis & Query Planning (2:10)
Understanding Covered Queries (3:34)
How MongoDB Rejects a Plan (7:37)
Using Multi-Key Indexes (8:15)
Understanding Text Indexes (6:09)
Text Indexes & Sorting (2:21)
Creating Combined Text Indexes (2:54)
Using Text Indexes to Exclude Words (0:54)
Setting the Default Language & Using Weights (6:31)
Building Indexes (7:40)
Wrap Up (2:24)
Useful Resources & Links
Working with Geospatial Data
Module Introduction (0:53)
Adding GeoJSON Data (4:51)
Running Geo Queries (3:22)
Adding a Geospatial Index to Track the Distance (2:52)
Adding Additional Locations (3:34)
Finding Places Inside a Certain Area (6:22)
Finding Out If a User Is Inside a Specific Area (5:27)
Finding Places Within a Certain Radius (5:38)
Assignment - Geospatial Data (Problem) (2:28)
Assignment - Geospatial Data (Solution) (13:39)
Wrap Up (1:40)
Useful Resources & Links
Understanding the Aggregation Framework
Module Introduction (1:34)
What is the Aggregation Framework? (1:59)
Getting Started with the Aggregation Pipeline (1:21)
Using the Aggregation Framework (3:12)
Understanding the Group Stage (5:56)
Diving Deeper Into the Group Stage (3:12)
Assignment - Aggregation Framework (Problem) (1:03)
Assignment - Aggregation Framework (Solution) (4:01)
Working with $project (9:58)
Turning the Location Into a geoJSON Object (7:59)
Transforming the Birthdate (3:48)
Using Shortcuts for Transformations (1:25)
Understanding the $isoWeekYear Operator (2:40)
$group vs $project (0:55)
Pushing Elements Into Newly Created Arrays (4:03)
Understanding the $unwind Stage (2:50)
Eliminating Duplicate Values (0:50)
Using Projection with Arrays (3:03)
Getting the Length of an Array (1:11)
Using the $filter Operator (4:43)
Applying Multiple Operations to our Array (7:30)
Understanding $bucket (6:16)
Diving Into Additional Stages (7:29)
Writing Pipeline Results Into a New Collection (1:47)
Working with the $geoNear Stage (5:16)
Wrap Up (2:41)
Useful Resources & Links
Working with Numeric Data
Module Introduction (0:54)
Number Types - An Overview (6:28)
Understanding Programming Language Defaults (3:33)
Working with int32 (5:17)
Working with int64 (6:32)
Doing Maths with Floats int32s & int64s (6:57)
What's Wrong with Normal Doubles? (4:20)
Working with Decimal 128bit (4:14)
Wrap Up (1:40)
Useful Resources & Links
MongoDB & Security
Module Introduction (4:23)
Understanding Role Based Access Control (6:47)
Roles - Examples (2:13)
Creating a User (5:50)
Built-In Roles - An Overview (5:39)
Assigning Roles to Users & Databases (4:48)
Updating & Extending Roles to Other Databases (5:06)
Assignment - Security (Problem) (1:31)
Assignment - Security (Solution) (6:42)
Adding SSL Transport Encryption (10:20)
Encryption at REST (1:25)
Wrap Up (3:21)
Useful Resources & Links
Performance, Fault Tolerancy & Deployment
Module Introduction (1:52)
What Influences Performance? (3:01)
Understanding Capped Collections (5:05)
What are Replica Sets? (4:36)
Understanding Sharding (6:13)
Deploying a MongoDB Server (2:25)
Using MongoDB Atlas (9:17)
Backups & Setting Alerts in MongoDB Atlas (1:27)
Connecting to our Cluster (3:36)
Wrap Up (1:58)
Useful Resources & Links
Transactions
Module Introduction (1:04)
What are Transactions? (2:03)
A Typical Usecase (2:17)
How Does a Transaction Work? (7:42)
Useful Resources & Links
From Shell to Driver
Module Introduction (2:13)
Splitting Work Between the Driver & the Shell (2:06)
Preparing our Project (4:49)
Installing Visual Studio Code (1:46)
Installing the Node.js Driver (4:56)
Connecting Node.js & the MongoDB Cluster (6:31)
Storing Products in the Database (4:53)
Storing the Price as 128bit Decimal (6:10)
Fetching Data From the Database (6:23)
Creating a More Realistic Setup (11:48)
Getting a Single Product (3:20)
Editing & Deleting Products (7:28)
Implementing Pagination (4:58)
Adding an Index (1:27)
Signing Users Up (7:03)
Adding an Index to Make the Email Unique (1:13)
Adding User Sign In (5:18)
Wrap Up (1:11)
Useful Resources & Links
Introducing Stitch
Module Introduction (1:42)
Stitch & MongoDB Realm
What is Stitch? (7:22)
Preparations (2:04)
Start Using Stitch (4:33)
Adding Stitch to our App & Initializing It (8:11)
Adding Authentication (2:47)
Sending Data Access Rules (3:57)
Fetching & Converting Data (1:49)
Deleting Products (3:02)
Finding a Single Product (4:09)
Adding Products (3:29)
Updating Products (3:46)
Switching to User Email & Password Authentication (1:54)
Adding User Sign Up & Confirmation (6:32)
Adding User Login (3:42)
Rules & Real Users (1:48)
The Current State of Authentication
Functions & Triggers (5:01)
Wrap Up (0:56)
Useful Resources & Links
Roundup
Course Roundup (3:05)
Introduction
Download
Complete and Continue