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