TTDB4683: Introduction to MongoDB for Developers

Become an EPIC Affiliate

To view the class schedule you need to become an Affiliate

  • Largest “Guaranteed To Run” public technical training schedules available
  • Easy to become an Affiliate – no charge or fee
Become an EPIC Affiliate

already an Affiliate?  Login

About this Course

Geared for experienced developers, Introduction to MongoDB for Developers is a comprehensive course that provides you with hands-on experience with the MongoDB query language, aggregation framework, data modeling, indexes, drivers, basic performance tuning, high availability and scaling. Throughout the course, you’ll explore the MongoDB Atlas database environment in detail, gaining job-ready skills you can put right to work after class.

Audience Profile

This introductory-level course is for experienced application developers new to MongoDB. Students should have prior programming background, and be comfortable working with Linux.

At Course Completion

This course is approximately 50% hands-on lab to lecture ratio, combining engaging expert lessons, demos and group discussions with real-world, skills-focused machine-based labs and exercises. Working in a hands-on learning environment, guided by our expert team, you’ll explore:

· Storage Basics

· MongoDB Document Model

· MongoDB Setup

· CRUD: Basics through Advanced Concepts

· Performance: Basics through Advanced Concepts

· Aggregation: Basics through Advanced Concepts

· Replication: Basics through Advanced Concepts

· Sharding: Basics through Advanced Concepts

· Schema Design

· Security Basics, Authentication & Authorization

· Application Development and Drivers

Outline

Day 1

1. Storage Basics

· What is a Storage Engine?

· WiredTiger Storage Engine

· In-Memory Storage Engine

· Encrypted Storage Engine

2. MongoDB Document Model

· JSON and BSON

· MongoDB Data Types

3. MongoDB Setup

· Lab: Atlas Setup / Local MongoDB Setup

4. CRUD Basics

· Insert Command

· Find Command

· Query Operators

· Lab: Finding Documents

· Remove Command

· Updating Documents

· Lab: Updating Documents

5. CRUD Advanced

· Bulk Writes

· Retryable Writes

· Find and Modify

· Transactions

6. Performance Basics

· Indexes

· Lab: Creating Indexes

· Lab: Using explain()

7. Aggregation Basics

· Aggregation Pipeline Concepts

· Aggregation Pipeline Stages

· Aggregation Pipeline Expressions

· Lab: Writing Aggregation Queries

Day 2

8. Aggregation Advanced

· $lookup stage

· $graphLookup stage

· Lab: Using $graphLookup

· $expr operator

· Lab: Using $expr

· Faceted Search

· Type Conversions

· Advanced Expression Operators

· Date Expression Operators

· Expression Variables

· Aggregation Pipeline Optimizations

· Aggregation in a Sharded Cluster

9. Replication Basics

· MongoDB Replica Sets

· Replica Set Use Cases

· Replication Mechanics

10. Replication Advanced

· Using Write Concern to Tune Durability Semantics

· Using Read Concern to Tune Read Isolation

· Using Read Preference

· Replica Set Tag Sets

11. Sharding Basics

· Sharding Concepts

· When to Shard

· What is a Shard Key?

· Zoned Sharding / MongoDB Atlas Global Clusters

12. Sharding Advanced

· Components of a Sharded Cluster

· Sharding Mechanics

· Choosing a Good Shard Key

Day 3

13. Schema Design

· Schema Design Core Concepts

· Common Patterns

· Lab: Data Model for an E-Commerce Site

14. Security Basics

· Authentication & Authorization

· Lab: Creating an Admin User

· Lab: Creating a readWrite User

· Network Encryption

· Encryption at Rest

· Auditing

15. Application Development and Drivers

· Application Development with MongoDB Drivers

· Lab: Driver Tutorial

16. Performance Advanced

· Designing Compound Indexes

· Indexing Arrays

· Covered Queries

· Using hint() and Index Filters

Prerequisites

This introductory-level course is for experienced application developers new to MongoDB. In order to gain the most from this course, you should have:

· Basic programming experience. Course examples leverage basic Java syntax, so experience with Java or another OO language will be helpful.

· Prior experience working with databases (Such as MySQL, etc.)

· Experience working in Linux and / or be comfortable working from the command line.