WA2266
Development with MongoDB Training
This MongoDB course teaches attendees how to work with this open-source document-oriented NoSQL (Not Only SQL) database written in C++. Attendees learn to effectively use MongoDB, understand its data structures, and optimize their programming to its API, which aids in creating high-performance and robust solutions in small start-ups and big companies alike.
Course Details
Duration
2 days
Prerequisites
Familiarity with Java programming and using Eclipse development environment.
Target Audience
- Technical Leads
- Application Developers
Skills Gained
Become proficient developing with MongoDB using Java.
Course Outline
- Introduction to MongoDB
- MongoDB
- MongoDB Features
- MongoDB on the Web
- 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 Query Language (QL) Example
- Inserts
- MongoDB vs Apache CouchDB
- MongoDB Data Model
- The BSON Data Format
- Database Terminology
- MongoDB Data Model
- The _id Primary Key Field 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
- MongoDB Architecture
- MongoDB 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
- MongoDB Administration
- The Admin Shell
- Getting Help
- Admin Commands
- Starting MongoDB
- Running MongoDB JavaScript 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 Extended JSON Encoding
- Examples of Data Import / Export
- The Robo3T Tool
- Robo3T Connections
- Connection Manager
- Viewing Databases, Collections and Documents
- Edit Capabilities
- Admin Shell
- 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
- The Update Operation
- Update Operation Options
- Limiting Return Data
- Data Sorting
- Aggregating Data
- Aggregation Stages
- Accumulators
- Map-Reduce
- 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
- 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
- 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 Mongo - Legacy API
- Connecting to Mongo - Updated API (since 3.7)
- 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
- 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
- Enable Authorization
- Create an Admin User
- Create a Database User
- Protecting Data in Transit
- Protecting Data at Rest
- Limit Network Exposure
- Audit System Activity
- Run MongoDB with a Dedicated User
- Run MongoDB with Secure Configuration Options
- Compliance
- 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
- MapReduce vs Aggregation Pipelines in MongoDB
- Lab Exercises
- Lab 1. Learning the MongoDB Lab Environment
- Lab 2. The MongoDB Database Operations
- Lab 3. The MongoDB Admin Shell
- Lab 4. Import Export Operations in MongoDB
- Lab 5. Working with Data in MongoDB
- Lab 6. Using MongoDB
- Lab 7. CRUD Operations with the MongoDB Java Driver
- Lab 8. Aggregation with the MongoDB Java Driver
- Lab 9. x509 Authentication in MongoDB
- Lab 10. MongoDB Authentication
- Lab 11. Project – A RESTful API for MongoDB in NodeJS