Development with MongoDB Training (MON112)
Course Length: 2 days
Delivery Methods:
Available as private class only
Course Overview
In this Development with MongoDB training class, students become proficient in developing with MongoDB using Java.
Course Benefits
- Obtain an overview of the "NoSQL" landscape.
- Learn about the MongoDB developer value proposition.
- Learn the MongoDB architecture.
- Learn how to install and configure mongoDB.
- Learn essential system administration.
- Learn to develop solutions in Java.
Course Outline
- Introduction to MongoDB
- MongoDB
- MongoDB Features
- MongoDB's Logo
- Positioning of MongoDB
- MongoDB Applications
- MongoDB Data Model
- MongoDB Limitations
- MongoDB Use Cases
- MongoDB Query Language (QL)
- The CRUD Operations
- The
- find
- Method
- The
- findOne
- Method
- A MongoDB QL Example
- Data Inserts
- MongoDB vs Apache CouchDB
- Summary
- MongoDB Data Model
- The BSON Data Format
- Database Terminology
- MongoDB Data Model
- The _id Primary Key Filed Considerations
- Indexes
- (Traditional) Data Modeling in RDBMS
- Data Modeling in MongoDB
- An Example of a Data Model in MongoDB
- MongoDB Data Modeling
- A Sample JSON Document Matching the Schema
- To Normalize or Denormalize?
- MongoDB Limitations
- Data Lifecycle Management
- Data Lifecycle Management: TTL
- Data Lifecycle Management: Capped Collections
- Summary
- MongoDB Architecture
- MongoDB Nexus Architecture
- Blending the Best of Both Worlds
- What Makes MongoDB Fast?
- Pluggable Storage Engines
- Data Sharding
- Sharding in MongoDB
- Data Replication
- A Sample Sharded Cluster Diagram
- GridFS
- Getting a File from GridFS
- MongoDB Security
- Authentication
- Data and Network Encryption
- Summary
- MongoDB Administration
- The Admin Shell
- Getting Help
- Admin Commands
- Starting MongoDB
- The mongod Web UI
- Running MongoDB .JS Scripts
- Shell Helper to JavaScript Equivalent Map
- A MongoDB Script Example
- Connecting to MongoDB
- User Authentication
- Authentication Options
- Import / Export Operations
- MongoDB Extended JSON and Strict Mode
- Examples of Strict Mode Encoding
- Examples of Data Import / Export
- The Robo3T (formerly RoboMongo) Tool
- Robo3T Connections
- Connection Manager
- Viewing Databases, Collections and Documents
- Edit Capabilities
- Admin Shell
- Summary
- Working with Data in MongoDB
- Reading Data in MongoDB
- The Query Interface
- Query Syntax is Driver-Specific
- Projections
- Query and Projection Operators
- MongoDB Query to SQL Select Comparison
- Cursors
- Cursor Expiration
- Writing Data in MongoDB
- An Insert Operation Example
- The Update Operation
- An Update Operation Example
- A Remove Operation Example
- Limiting Return Data
- Data Sorting
- Aggregating Data
- Aggregation Stages
- Accumulators
- An Example of an Aggregation Pipe-line
- Map-Reduce
- Summary
- Indexes in MongoDB
- Indexes in MongoDB
- Creating an Index
- Listing Existing Indexes
- The Sort Order
- Using the Explain() Method
- Main Index Types
- The _id Field
- Single and Compound Indexes
- Multikey Indexes
- Other Index Types
- Index Properties
- Examples of Creating Indexes with Index Properties
- Summary
- Accessing MongoDB from Node.js
- Getting Started
- The Connection URL
- Obtaining a Collection
- Inserting Documents
- Updating a Document
- Querying for Documents
- Deleting a Document
- Connection Pooling
- Summary
- MongoDB Java Client
- Accessing MongoDB from a Java Client
- The MongoDB Java Driver
- Using the Synchronous Driver in a Java Application
- Connecting to MongoDB
- Connecting to a Standalone Instance
- Connection Options and the MongoClientURI
- Using MongoClientURI
- Connecting to a Replica Set
- Connecting to a Sharded Cluster
- Connection Configuration
- Connecting and Accessing a Collection
- Create a Collection
- Insert a Document
- Update
- Update Operators
- Read (Find)
- Read (Find) Multiple Documents
- Delete
- BSON Library
- Impedance Mismatch
- Morphia Object Mapper
- Setup
- Connecting
- Mapping
- Simple Mapping
- Saving Data
- Queries
- Summary
- Securing MongoDB
- Security Overview
- Your Mileage May Vary
- Security is Your Responsibility
- First Things First
- MongoDB Security
- A MongoDB Security Checklist
- Enable Access Control and Enforce Authentication
- Configure Role-Based Access Control
- Create an Admin User
- Create a Database User
- Enable Authentication
- Encrypt Communication
- Encrypt and Protect Data
- Limit Network Exposure
- Audit System Activity
- Run MongoDB with a Dedicated User
- Run MongoDB with Secure Configuration Options
- Compliance
- Summary
- MapReduce in MongoDB
- The Client – Server Processing Pattern
- Distributed Computing Challenges
- MapReduce Defined
- Google's MapReduce
- MapReduce Phases
- The Map Phase
- The Reduce Phase
- MapReduce Word Count Job
- MapReduce Shared-Nothing Architecture
- Similarity with SQL Aggregation Operations
- Problems Suitable for Solving with MapReduce
- Typical MapReduce Jobs
- Fault-tolerance of MapReduce
- Distributed Computing Economics
- MapReduce in MongoDB
- Example - part 1
- Example - part 2
- Example – Part 3
- Example – Part 4
- Example – Part 5
- Example – Part 6
- MapReduce vs Aggregation Pipelines in MongoDB
- Summary
Class Materials
Each student will receive a comprehensive set of materials, including course notes and all the class examples.
Class Prerequisites
Experience in the following is required for this MongoDB class:
- Familiarity with Java programming and using Eclipse development environment.
Live Private Class
- Private Class for your Team
- Live training
- Online or On-location
- Customizable
- Expert Instructors