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-onThis 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