WA2266

Development with MongoDB Training

MongoDB is an open source document-oriented NoSQL (Not Only SQL) database written in C++.  Effective use of MongoDB, understanding its data structures and optimal ways to program to its API 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