Giới thiệu mongoDB
- 03-02-2026
- Toanngo92
- 0 Comments
Mục lục
🎯 Mục tiêu học tập (Learning Objectives)
Trong phiên học này, học viên sẽ học được cách:
- Giải thích các loại cơ sở dữ liệu khác nhau
- Mô tả cách dữ liệu được lưu trữ trong MongoDB Server
- Giải thích quy trình cài đặt MongoDB Server và MongoDB Shell
Tổng quan về cơ sở dữ liệu
Cơ sở dữ liệu đã được sử dụng trong một thời gian rất dài. Phần lớn các công ty hiện nay sử dụng cơ sở dữ liệu có cấu trúc như SQL Server và Oracle để lưu trữ thông tin liên quan đến sản phẩm, khách hàng, bán hàng, nhân sự, v.v.
Khi cơ sở dữ liệu ngày càng phát triển với lượng thông tin ngày càng lớn, các công ty buộc phải đầu tư thêm phần cứng để lưu trữ dữ liệu ngày càng tăng này. Khi cơ sở dữ liệu “phình to”, một số hệ thống cơ sở dữ liệu hiện có trở nên rất tốn kém để nâng cấp và bảo trì. Ngoài ra, hiệu năng của các cơ sở dữ liệu này bị ảnh hưởng nghiêm trọng khi xử lý khối lượng dữ liệu lớn.
Vì sao NoSQL ra đời?
Để khắc phục các vấn đề mà cơ sở dữ liệu có cấu trúc gặp phải khi dữ liệu ngày càng tăng, các công ty hiện nay đang chuyển sang sử dụng cơ sở dữ liệu NoSQL.
Đặc biệt là các công ty vận hành:
- Ứng dụng mạng xã hội
- Ứng dụng game
- Ứng dụng có lượng người dùng tăng liên tục
MongoDB là một trong những cơ sở dữ liệu NoSQL phổ biến nhất hiện nay.
Phiên học này sẽ:
- Cung cấp cái nhìn tổng quan về các loại cơ sở dữ liệu
- Giải thích sự phổ biến ngày càng tăng của NoSQL
- Trình bày kiến trúc của MongoDB
- Hướng dẫn các bước cài đặt MongoDB Server và MongoDB Shell
1.1 Cơ sở dữ liệu (Databases)
Dữ liệu (Data) là bất kỳ thông tin nào, và cơ sở dữ liệu (Database) là một tập hợp dữ liệu.
Ví dụ về cơ sở dữ liệu:
- Danh bạ điện thoại
- Danh mục sản phẩm
Tùy vào cách dữ liệu được lưu trữ, có nhiều loại cơ sở dữ liệu khác nhau, bao gồm:
🔹 Cơ sở dữ liệu phân cấp (Hierarchical)
- Lưu trữ dữ liệu theo cấu trúc cha – con, tương tự cây gia phả
- Ví dụ: Windows Registry
🔹 Cơ sở dữ liệu quan hệ (Relational)
- Lưu trữ dữ liệu dưới dạng hàng và cột, tạo thành bảng (relation)
- Ví dụ: MySQL, Oracle
🔹 Cơ sở dữ liệu hướng đối tượng (Object-oriented)
- Lưu trữ dữ liệu dưới dạng đối tượng, tương tự đối tượng trong ngôn ngữ lập trình hướng đối tượng
- Ví dụ: PostgreSQL
🔹 Cơ sở dữ liệu mạng (Network)
- Lưu trữ dữ liệu với nhiều nút cha – con, tạo ra cấu trúc dữ liệu phức tạp
- Ví dụ: RDM Server
🔹 Cơ sở dữ liệu NoSQL
- Không sử dụng mô hình quan hệ
- Dùng để phân tích tập dữ liệu phân tán lớn
- Ví dụ: MongoDB
So sánh CSDL Quan hệ và NoSQL
📊 Bảng 1.1: So sánh Cơ sở dữ liệu Quan hệ và NoSQL
| Thuộc tính | CSDL Quan hệ | CSDL NoSQL |
|---|---|---|
| Lưu trữ dữ liệu | Hàng và cột trong bảng | Document, graph, key-value |
| Schema | Bắt buộc schema cố định | Schema động |
| Khả năng mở rộng | Mở rộng dọc (vertical scaling) | Mở rộng ngang (horizontal scaling) |
| Hiệu năng | Chậm khi dữ liệu lớn | Truy vấn nhanh do dữ liệu gom chung |
| Tính nhất quán | Tuân theo ACID | Không tuân theo ACID |
| Ứng dụng | Thương mại điện tử, quản lý tồn kho | Game online, mạng xã hội |
1.2 Tổng quan về MongoDB
Xét một ứng dụng mạng xã hội nơi một ngôi sao điện ảnh có hàng triệu người theo dõi đăng ảnh phim mới. Hàng ngàn người dùng bình luận, phản hồi bằng văn bản, ảnh động, emoji.
Nếu dùng RDBMS, dữ liệu sẽ bị chia nhỏ thành nhiều bảng:
- Bảng thông tin ngôi sao
- Bảng bài đăng
- Bảng bình luận
Việc đọc/ghi dữ liệu phức tạp và tốn thời gian → trải nghiệm người dùng kém.
👉 Với MongoDB (NoSQL), tất cả dữ liệu có thể được lưu chung trong một document, giúp:
- Truy vấn nhanh hơn
- Cải thiện trải nghiệm người dùng
Các loại cơ sở dữ liệu NoSQL
Có 4 loại chính:
- Document Database: JSON, BSON, XML
- Key-Value Database: nhãn – giá trị
- Wide-column Database: lưu theo cột
- Graph Database: lưu dữ liệu dạng node và mối quan hệ
MongoDB là Document Database, lưu dữ liệu dạng BSON (Binary JSON).
📌 BSON hỗ trợ nhiều kiểu dữ liệu hơn JSON và được MongoDB sử dụng để lưu trữ document.
1.2.1 Kiến trúc MongoDB (MongoDB Architecture)
MongoDB hoạt động theo 2 tầng:
🔹 Tầng ứng dụng (Application Layer)
- Giao diện người dùng (Web, Mobile – Android/iOS)
- MongoDB Driver (kết nối ứng dụng với MongoDB Server)
- MongoDB Shell (CLI để tương tác DB)
🔹 Tầng dữ liệu (Data Layer)
- MongoDB Server
- Storage Engine (đọc/ghi dữ liệu vào bộ nhớ và file)

MongoDB hỗ trợ driver cho:
C, C++, .NET, Go, C#, Python, Node.js, …
WiredTiger là storage engine mặc định. Ngoài ra còn có:
- In-memory
- MMAPv1
- Encrypted storage engine
1.2.2 Database – Collection – Document
- Document ≈ Row trong RDBMS
- Collection ≈ Table
- Database ≈ Tập hợp nhiều collection

MongoDB lưu dữ liệu dưới dạng BSON document:
{
field1: value1,
field2: value2,
field3: value3
}
Ví dụ document mẫu:
{
_id: ObjectId("5099803df3f4948bd2f98391"),
name: { first: "Larissa", last: "Smith" },
birth: new Date("Jun 23, 2015"),
grade: 6,
marks: [
{ sub: "English", score: 89 },
{ sub: "Math", score: 75 },
{ sub: "Science", score: 92 },
{ sub: "Social Studies", score: 70 }
]
}
📌 Document gồm các cặp key – value, là đơn vị dữ liệu cơ bản của MongoDB.
1.2.3 Các phiên bản MongoDB (MongoDB Editions)
🔹 MongoDB Server
- Community Server: miễn phí
- Enterprise Server: thương mại, có:
- Tính năng quản trị nâng cao
- In-memory storage
- Bảo mật nâng cao
🔹 MongoDB Cloud – MongoDB Atlas
Cung cấp Database as a Service (DBaaS), hỗ trợ:
- High availability
- Scalability
Các sản phẩm trong MongoDB Atlas:
- Atlas Database
- Atlas Search
- Atlas Charts
- Atlas App Services
- Atlas Device Sync
- Atlas Data Lake
Lợi ích:
- Tiết kiệm thời gian & chi phí
- API thống nhất
- Triển khai đa vùng tại hơn 80 khu vực trên AWS, GCP, Azure
Ưu điểm của MongoDB Atlas
- Tập trung vào phát triển thay vì vận hành: MongoDB Atlas cung cấp các thao tác hạ tầng tự động, đảm bảo tính sẵn sàng (availability), khả năng mở rộng (scalability) và tuân thủ bảo mật (security compliance).
- Làm việc với dữ liệu như mã nguồn (data as code):
Trong MongoDB, các document ánh xạ trực tiếp với các object trong code. Do đó:- Có thể lưu trữ dữ liệu với bất kỳ cấu trúc nào
- Schema có thể thay đổi linh hoạt khi bổ sung tính năng mới cho ứng dụng
📌 MongoDB Atlas cho phép triển khai cơ sở dữ liệu trên bất kỳ nhà cung cấp cloud nào, thay vì bị giới hạn vào một lựa chọn duy nhất.
MongoDB Shell & MongoDB Compass
- MongoDB Shell là một công cụ dòng lệnh (CLI) độc lập, cho phép người dùng:
- Kết nối tới MongoDB Server
- Kết nối tới MongoDB Atlas Service
- MongoDB Compass là giao diện đồ họa (GUI), cho phép người dùng:
- Kết nối và thao tác với MongoDB Server hoặc MongoDB Atlas một cách trực quan
Ngoài ra, người dùng cũng có thể truy cập trực tiếp nền tảng MongoDB Atlas trên trình duyệt và làm việc mà không cần dùng MongoDB Shell hoặc MongoDB Compass.

1.3 Cài đặt MongoDB Community Server
Khóa học này sử dụng MongoDB 8.0 Community Edition.
Các bước cài đặt MongoDB 8.0 Community trên Windows
Bước 1
Mở trình duyệt và truy cập:
https://www.mongodb.com/try/download/community
Trang tải MongoDB Community Server sẽ hiển thị.
Bước 2
Cuộn xuống và đảm bảo các tùy chọn sau được chọn:
- Version:
8.0.10 (current) - Platform:
Windows x64 - Package:
msi
Bước 3
Nhấn Download.
Bước 4
Sau khi tải xong, chạy file cài đặt.

Bước 5
Nhấn Next.

Bước 6
Chọn checkbox “I accept the terms in the License Agreement”.
Bước 7
Nhấn Next.

Bước 8
Chọn Complete.

Bước 9
Nhấn Next.

Bước 10
Đảm bảo checkbox Install MongoDB Compass được chọn.
Bước 11
Nhấn Next.

Bước 12
Nhấn Install.

Sau khi quá trình cài đặt hoàn tất, trang hoàn thành sẽ hiển thị.

Bước 13
Nhấn Finish.
📌 MongoDB Compass sẽ được cài đặt kèm theo MongoDB Community Server và tự động mở.
👉 Đóng cửa sổ MongoDB Compass tại thời điểm này.
1.4 Cài đặt MongoDB Shell
Sau khi cài MongoDB Server, tiếp tục cài MongoDB Shell (mongosh).
Các bước cài MongoDB Shell
Bước 1
Mở trình duyệt và truy cập:
https://www.mongodb.com/try/download/shell
Trang tải MongoDB Shell hiển thị.

Bước 2
Cuộn xuống và đảm bảo:
- Version:
2.5.3 - Platform:
Windows x64 (10+) - Package:
msi
Bước 3
Nhấn Download.
Bước 4
Sau khi tải xong, chạy file cài đặt.

Figure 1.10: Trang Welcome MongoDB Shell Setup Wizard
Bước 6
Nhấn Next.

Bước 7
Kiểm tra đường dẫn thư mục cài đặt và nhấn Next.

Figure 1.12: Trang Ready to Install MongoDB Shell
Bước 8
Nhấn Install.

Bước 9
Nhấn Finish để kết thúc trình cài đặt MongoDB Shell.
1.5 Thiết lập môi trường (Setting up the Environment)
Để thiết lập môi trường làm việc cho MongoDB, thực hiện các bước sau:
Bước 1
Mở Windows Command Prompt (cmd.exe) với quyền Administrator.
Bước 2
Tạo thư mục dữ liệu nơi MongoDB sẽ lưu trữ toàn bộ dữ liệu, như minh họa:
C:\> md "\data\db"

📌 Lưu ý:
- Theo mặc định, MongoDB lắng nghe kết nối từ client tại cổng 27017
- Đường dẫn lưu trữ dữ liệu mặc định là thư mục /data/db
Khởi động MongoDB Database
Để khởi động MongoDB database, chạy lệnh sau:
"C:\Program Files\MongoDB\Server\8.0\bin\mongod.exe" --dbpath="c:\data\db"
Lệnh được thực thi như minh họa trong Hình 1.15.

Tùy chọn --dbpath chỉ ra thư mục lưu trữ dữ liệu.
Nếu MongoDB Server chạy thành công, thông báo waiting for connections sẽ hiển thị như trong Hình 1.16.

Tại thời điểm này, instance mongod của MongoDB đã chạy thành công.
📌 Khuyến nghị:
Thêm đường dẫn sau vào System Path:
C:\Program Files\MongoDB\Server\8.0\bin
Việc này cho phép chạy MongoDB trực tiếp từ command prompt mà không cần phải di chuyển đến thư mục cài đặt mỗi lần.
1.6 Kết nối MongoDB Server và MongoDB Shell
Để kết nối MongoDB Shell với MongoDB Server:
Bước 1
Mở một cửa sổ Command Prompt khác.
Bước 2
Để kết nối MongoDB Shell tới MongoDB deployment đang chạy trên localhost với cổng mặc định 27017, chạy lệnh:
mongosh
Lệnh được thực thi như minh họa trong Hình 1.17.

Figure 1.17: Kết quả lệnh mongosh
MongoDB Shell đã được kết nối thành công tới MongoDB Server.
Bước 3
Để kiểm tra kết nối, chạy lệnh:
show dbs
Danh sách các cơ sở dữ liệu hiện có sẽ hiển thị như trong Hình 1.18.

Figure 1.18: Kết quả lệnh show dbs
1.7 Tổng kết (Summary)
- Cơ sở dữ liệu NoSQL là cơ sở dữ liệu phi quan hệ, có thể hỗ trợ khối lượng lớn dữ liệu phi cấu trúc.
- MongoDB là một cơ sở dữ liệu NoSQL mã nguồn mở, lưu trữ dữ liệu dưới định dạng BSON.
- Driver, Shell và Storage Engine là các thành phần quan trọng để MongoDB hoạt động.
- MongoDB lưu trữ dữ liệu dưới dạng database, collection và document.
- MongoDB hoạt động theo hai tầng: tầng ứng dụng và tầng dữ liệu.
- MongoDB Compass là GUI dùng để tương tác với MongoDB Server.
- MongoDB Atlas là sản phẩm cloud của MongoDB, cung cấp khả năng tính toán trên nền tảng đám mây.
- Để thiết lập môi trường MongoDB:
- Cài MongoDB Server
- Cài MongoDB Shell
- Dùng mongosh để kết nối shell với server
Bài tập
- Cài đặt MongoDB 8.0 Community Edition trên Windows.
- Cài đặt MongoDB Shell 2.5.3 trên Windows.
- Dùng command prompt để:
- Thiết lập môi trường
- Chạy instance mongod
- Kết nối mongosh với mongod
- Thực thi lệnh xem danh sách database



