MongoDB là một nền tảng mã nguồn mở miễn phí dùng để lƣu trữ dữ liệu dƣới dạng các tài liệu có cấu trúc. MongoDB thuộc nhóm các hệ quản trị cơ sở dữ liệu NoSQL. Cấu trúc của các tài liệu đƣợc định nghĩa thông qua các Schema, sử dụng cú pháp Javascript. Nội dung của các tài liệu đƣợc biểu diễn dƣới dạng cú pháp của JSON.
Hình 3.5 mô tả nội dung của một file Schema định nghĩa cấu trúc của một tài liệu trong MongoDB.
Hình 3.5. File Schema định nghĩa cấu trúc của tài liệu lưu trữ thông tin người dùng trong MongoDB
Một số ƣu điểm nổi bật của MongoDB so với các hệ quản trị cơ sở dữ liệu truyền thống bao gồm:
Mô hình dữ liệu linh hoạt: lập trình viên có thể định nghĩa các cấu trúc dữ liệu tùy biến theo nhu cầu của mình.
Tƣơng thích rất cao với các ngôn ngữ lập trình hƣớng đối tƣợng: việc thao tác với các đối tƣợng diễn ra một cách tự nhiên, không cần đến các tầng ORM (Object-Relation Mapping) nhƣ truyền thống. Hỗ trợ tốt cho quy mô lớn theo cơ chế sharding (mở rộng theo chiều
ngang).
Phiên bản MongoDB đƣợc sử dụng cho hệ thống hiện tại là 3.0.1.
Việc lựa chọn các công nghệ cho hệ thống hiện tại đƣợc thực hiện chủ yếu dựa trên các ƣu điểm của từng công nghệ. Ngoài ra, có một lí do quan trọng khác nữa đó là các công nghệ này cùng nhau tạo nên một hệ sinh thái rất mạnh mẽ và ngày càng phổ biến: MEAN (tên gọi này xuất phát từ chữ viết tắt của MongoDB, Express.js, AngularJS và Node.js). MEAN là một bộ công cụ đầy đủ để phát triển các ứng dụng web hoàn toàn dựa trên Javascript.