Course outline for NoSQL and MongoDB

TechnologyMongoDBDuration* 2-4 days LevelPrerequisites listed

Pre-requisites

  • Participants must have good knowledge of relational databases and database administration
  • Participants must be comfortable in a Linux environment
  • Knowledge of databases and MVC application development is preferred
  • Knowledge of JavaScript and JSON is preferred (a basic overview will be given during the program)

Lab Setup

Hardware Configuration

Participants must have access to a system with the following hardware configuration:

  • 2GB of free RAM, 20GB of free disk space and full network connectivity

Software configuration

  • Ubuntu 20.04/22.04 Desktop Edition (sudo/root access required)
  • MongoDB can be either pre-installed or we can do it during the training (if participants need to know how to do the installation)

How we train

Online training for NoSQL and MongoDB

  • Instructor-led live cohorts
  • Self-paced learning with expert coaches
  • 24x7 cloud labs with end-to-end examples

All sessions are 100% hands-on. Labs and activities are derived from real-world work our engineers deliver.

Classroom training

Available for corporate teams in:

  • Bengaluru
  • Chennai
  • Hyderabad
  • Mumbai
  • Delhi/Gurgaon/NCR
  • Pune

Note: Classroom training is for corporate clients only.

Self-paced hands-on sessions are delivered via VirtualCoach.

Detailed Course Outline

Hands-on

This course outline has been updated to include some of the features that were introduced into MongoDB v4.

Overview - SQL/NoSQL

  • Datastore design considerations
  • Relational v/s NoSQL stores
  • Entities, Relationships and Database modeling
  • When to use Relational/NoSQL
  • Relational Storage Structures
  • Categories of NoSQL stores
  • Examples of NoSQL stores
  • NoSQL Storage Structures

Data Formats

  • What are Data Formats
  • Difference between Data Formats and Data Structures
  • Serializing and de-serializing data
  • JavaScript Fundamentals
  • The JSON Data Format
  • BSON Data Format
  • Advantages of BSON

Introduction to MongoDB

  • Key Features of MongoDB
  • Installing MongoDB
  • Starting and Stopping the server
  • Important filesystem locations
  • Using the shell
  • Integrating with other languages

MongoDB Concepts

  • Servers
  • Connections
  • Databases
  • Collections
  • Documents
  • Fields
  • Indexes

MongoDB CRUD

  • A look at a few usecases
  • Insert (C)
  • Simple Query Examples (R)
  • Update (U)
  • Remove (D)

Indexing

  • Capped Collections
  • Setting up Profiling
  • Indexing concepts
  • Types of Indexes
  • Indexes covering queries

Querying MongoDB

  • Query Expression Objects
  • Query Options
  • Cursors
  • Mongo Query Language
  • Dot Notation
  • Full Text Search
  • Cursors
  • Adding Custom JavaScript

Advanced querying

  • Joins
  • Server-side v/s Client-side querying
  • Retrieving a subset of fields
  • Conditional operators
  • Aggregation
  • Grouping
  • Projections

Replication

  • Why Replication?
  • Difference between replication and backup
  • Replication Setups
  • Master/Slave Replication
  • Replica sets
  • Setting up an Arbiter
  • Failover
  • Using edda for replication analysis
  • Oplogs
  • Heartbeats
  • Removing replica set members
  • Overriding the default sync target
  • Write concerns

Views

  • Creating views
  • View behavior
  • Restrictions on views
  • Modifying views
  • Dropping views

Authentication

  • Adding admin user
  • Adding database users
  • Starting server with auth enabled
  • Using authentication
  • Replica sets and authentication
  • Role management

pymongo

  • Installing pymongo
  • CRUD examples via pymongo
  • ReplicaSetClient and failover example

Sharding

  • Idea of Sharding
  • How is sharding different from replication?
  • Shard servers
  • Config servers
  • mongos
  • Sharding with Replication
  • Manually adding splits
  • Choosing good shard keys
  • Write concern
  • Enabling/Disabling balancing

Backup/Dumps

  • The data directory
  • fsync and lock
  • mongodump
  • mongorestore
  • bsondump
  • mongoimport
  • mongoexport

Monitoring

  • The admin UI
  • Enabling REST
  • Getting data via HTTP REST interface
  • Monitoring related commands
  • Getting server status
  • Getting db stats
  • Getting collection stats
  • mongostat
  • mongotop
  • mongosniff
  • MongoDB Management Service
  • Process Logging
  • Profiling

A Few More Things

  • Production Checklist
  • GridFS
  • Map/Reduce