Practical technology training
Course outline for NoSQL and MongoDB
Connect the concepts, work through practical problems, and choose a training plan that fits your goals.
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)
Detailed Course Outline
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
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.