# Hướng dẫn: MongoDB with Java Spring Boot & Spring Framework.

### **Lesson 1: Introduction to MongoDB and Its Relevance in the NoSQL Ecosystem**

* Introduce MongoDB, its architecture, and how it contrasts with SQL databases.
    
* Discuss its popularity and use cases.
    
* Brief about the BSON format.
    

### **Lesson 2: Setting up MongoDB Locally and via Docker**

* Walk through installing MongoDB locally for various OS.
    
* Discuss how to run MongoDB as a Docker container.
    

### **Lesson 3: MongoDB Shell Basics**

* Introduce MongoDB shell commands for CRUD operations.
    
* Discuss query language and JSON-like documents.
    

### **Lesson 4: Introduction to Spring Data MongoDB**

* Brief about Spring Data Project.
    
* Discuss the MongoDB support in Spring Boot.
    

### **Lesson 5: MongoDB CRUD Operations in Pure Java**

* Use MongoDB Java drivers to execute CRUD operations.
    
* Discuss how to handle BSON in Java.
    

### **Lesson 6: MongoDB CRUD Operations Using Spring Data MongoDB**

* Create a Spring Boot application with Spring Data MongoDB dependency.
    
* Implement CRUD repository and execute CRUD operations.
    

### **Lesson 7: MongoDB Query Language (AND, OR, IN, Like, Starts With)**

* Explain the MongoDB query language in-depth.
    
* Real-world examples for each type of query.
    

### **Lesson 8: Querying in Spring Data MongoDB (AND, OR, IN, Like, Starts With)**

* Implement the same set of queries using Spring Data MongoDB.
    
* Discuss Query and Criteria classes.
    

### **Lesson 9: Pagination and Sorting in MongoDB**

* Deep dive into skip and limit functions.
    
* Discuss sorting and its performance implications.
    

### **Lesson 10: Pagination and Sorting in Spring Data MongoDB**

* Implement pagination and sorting using `Pageable` and `Sort` in Spring Data MongoDB.
    

### **Lesson 11: Transactions in MongoDB**

* Discuss ACID properties in MongoDB.
    
* Show how to use the `@Transactional` annotation in Spring Data MongoDB.
    

### **Lesson 12: Advanced Aggregations and Pipelines**

* Deep dive into aggregation functions and pipelines.
    
* Real-world examples and performance considerations.
    

### **Lesson 13: Native Queries in Spring Data MongoDB**

* Show how to write native MongoDB queries in Spring Data MongoDB.
    
* Compare the pros and cons against repository methods.
    

### **Lesson 14: Deploying to Pivotal Cloud Foundry with mLab**

* Walkthrough the deployment process for a Spring Boot application with MongoDB.
    
* Use mLab for MongoDB hosting and connect it to Pivotal Cloud Foundry.
    

### **Lesson 15: Monitoring and Optimizations**

* Introduce tools like MongoDB Atlas for monitoring.
    
* Discuss query optimization, indexing, and sharding.
