Bài viết này mình chia sẽ cách thức hoạt động của
MongoDB chi tiết cho người đang tìm hiểu.→ MongoDB là cơ sở dữ liệu NoSQL, theo mô hình tài liệu (
document-oriented database). MongoDB lưu trữ dữ liệu dưới dạng các tài liệu tương tự JSON (BSON) thay vì lưu trữ theo các hàng và cột như trong cơ sở dữ liệu quan hệ (SQL).🔹 Cấu Trúc Dữ Liệu
- Dữ liệu được tổ chức trong các cơ sở dữ liệu.
- Mỗi cơ sở dữ liệu chứa các
collection(tương tự như các bảng trong SQL). - Mỗi
collectionchứa các tài liệu (documents) tương tự như các hàng trongSQL. - Mỗi tài liệu là một cấu trúc cặp
khóa-giátrị (tương tự như JSON).
Ví dụ về tài liệu:
{
"name": "Alice",
"age": 25,
"skills": ["Node.js", "MongoDB"]
}
Định Dạng BSON
→ MongoDB sử dụng BSON (Binary JSON) nội bộ cho:
- Mã hóa và giải mã nhanh chóng.
- Lưu trữ các kiểu dữ liệu không hỗ trợ trong
JSON(ví dụ: Date, Dữ liệu nhị phân).
🔹 Tính Không Cố Định Cấu Trúc (Schema-less)
→ Các collection trong MongoDB không có schema, có nghĩa là:- Các tài liệu trong cùng một
collectioncó thể có cấu trúc khác nhau. - Bạn có thể thêm trường vào một số tài liệu mà không ảnh hưởng đến các tài liệu khác.
- Tính linh hoạt này giúp
MongoDBtrở thành lựa chọn lý tưởng cho các ứng dụng phát triển và thay đổi theo thời gian.
MongoDB hỗ trợ các thao tác CRUD sau:
- Create → insertOne, insertMany
- Read → find, findOne
- Update → updateOne, updateMany
- Delete → deleteOne, deleteManyv
Những thao tác này được thực hiện trực tiếp trên các
collectionthông qua các truy vấn và bộ lọc.
🔹 Lập Chỉ Mục (Indexing)
MongoDB sử dụng chỉ mục để tối ưu hiệu suất truy vấn:- Mặc định,
MongoDBtạo chỉ mục trên trường_id. - Bạn có thể tạo chỉ mục tùy chỉnh trên các trường để tăng tốc các truy vấn tìm kiếm và sắp xếp.
🔹 Tổng Hợp (Aggregation)
MongoDB cung cấp một Framework Tổng Hợp mạnh mẽ để:- Lọc dữ liệu.
- Nhóm và chuyển đổi dữ liệu.
- Thực hiện các phép tính trên dữ liệu (
tương tự như GROUP BY và JOIN trong SQL nhưng dựa trên pipeline).
Ví dụ:
db.orders.aggregate([
{ $match: { status: "delivered" } },
{ $group: { _id: "$customerId", total: { $sum: "$amount" } } }
])
🔹 Nhân Đôi (Replication)
MongoDB hỗ trợ replication qua Replica Sets:- Nhiều máy chủ MongoDB duy trì các bản sao của dữ liệu nhằm đảm bảo tính khả dụng cao.
- Nếu máy chủ chính gặp sự cố, một máy chủ phụ sẽ tự động được bầu làm máy chủ chính mới.
🔹 Sharding
MongoDB hỗ trợ sharding cho khả năng mở rộng theo chiều ngang:- Dữ liệu được phân phối qua nhiều máy chủ (
shards). - Mỗi shard lưu trữ một phần dữ liệu, giúp các ứng dụng quy mô lớn có thể xử lý khối lượng dữ liệu và lưu lượng truy cập lớn.
🔹 Giao Dịch (Transactions)
MongoDB hỗ trợ giao dịch ACID đa tài liệu (từ phiên bản 4.0), cho phép thực hiện các thao tác yêu cầu tính nguyên tử (atomicity) qua nhiều tài liệu và collection.Chúc mọi người thành công.


0 Comments
Cảm ơn bạn đã để lại góp ý cho tác giả