Course outline for NoSQL and MongoDB
Pre-requisites for learning NoSQL and MongoDB
- 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)
Duration
- 2-4 days
Training Mode
Online training for NoSQL and MongoDB
We provide:
- Instructor led live training
- Self-paced learning with access to expert coaches
- 24x7 access to cloud labs with end to end working examples
All jnaapti sessions are 100% hands-on. All our instructors are engineers by heart. Activities are derived from real-life problems faced by our expert faculty. Self-paced hands-on sessions are delivered via Virtual Coach.
Classroom training for NoSQL and MongoDB
Classroom sessions are conducted in client locations in:
- Bengaluru
- Chennai
- Hyderabad
- Mumbai
- Delhi/Gurgaon/NCR
Note: Classroom training is for corporate clients only
Detailed Course Outline for NoSQL and MongoDB
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