Module 1: Introduction to MongoDB
- Introduction
- What is MongoDB?
- MongoDB vs SQL Characteristics
- Understanding MongoDB ecosystem
- Installing MongoDB
- Shells Vs Drivers
Module 2: Basics of MongoDB and CRUD Operations
- 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
Module 3: Schemas & Relations - How to Structure Documents
- 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
Module 4: Exploring the Shell, the Server & MongoDB Compass
- Finding Available Options
- Setting "dbpath" & "logpath"
- Exploring the MongoDB Options
- MongoDB as a Background Service
- Using a Config File
- Shell Options & Help
-
Exploring the MongoDB Compass
Module 5: CREATE Operations
- Creating Documents - An Overview
- Understanding "insert()" Methods
- Working with Ordered Inserts
- Understanding the "writeConcern"
- The "writeConcern" in Practice
- What is Atomicity?
- Importing Data
Module 6: READ Operations
- 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", "$expr"
- Diving Deeper Into Querying Arrays
- Using Array Query Selectors - "$size", "$all", "$elemMatch"
- Using Array Query Selectors
- Understanding Cursors
- Applying Cursors
- Sorting Cursor Results
- Skipping & Limiting Cursor Results
- Using Projection to Shape our Results
- Using Projection in Arrays
- Understanding "$slice"
Module 7: UPDATE Operations
- 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"
Module 8: DELETE Operations
- Understanding "deleteOne()" & "deleteMany()"
- Deleting All Entries in a Collection
Module 9: Indexes in MongoDB
-
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
Module 10: Working with Geospatial Data
-
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
Module 11: Aggregation Framework in MongoDB
-
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
Module 12: Working with Numbers
-
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
Module 13: Security in MongoDB
-
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
Module 14: Performance & Fault Tolerance
-
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
Module 15: Transactions
-
What are Transactions?
-
A Typical Use case
-
How Does a Transaction Work?
Module 16: MongoDb Shell to Driver
-
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
Module 17: Introducing Stitch in MongoDB
-
Stitch & MongoDB Realm
-
What is Stitch?
-
Preparations
-
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
Module 18: Course Wrap Up
- Recap of Course Content
- Interview Guidance