Cấu trúc dữ liệu trong MongoDB như thế nào?
Cấu trúc dữ liệu trong MongoDB dựa trên mô hình document-oriented, nghĩa là dữ liệu được lưu dưới dạng các document (tài liệu) có cấu trúc dạng JSON (chính xác hơn là BSON — Binary JSON).
Dưới đây là các thành phần chính trong cấu trúc dữ liệu MongoDB:
1. Document (Tài liệu)#
Document là đơn vị cơ bản lưu trữ dữ liệu trong MongoDB.
Được biểu diễn dưới dạng JSON (BSON) gồm các cặp key - value.
Có thể chứa các kiểu dữ liệu: số, chuỗi, mảng, document con (nested document), Boolean, Date, null, ObjectId, v.v.
Mỗi document tương tự như một bản ghi trong bảng của RDBMS, nhưng linh hoạt hơn rất nhiều.
Ví dụ document:
{ "_id": ObjectId("507f1f77bcf86cd799439011"), "name": "Nguyen Van A", "age": 30, "address": { "street": "123 Đường Lê Lợi", "city": "Hà Nội", "country": "Việt Nam" }, "hobbies": ["reading", "swimming", "coding"] }
2. Collection (Bộ sưu tập)#
Collection tương đương với bảng (table) trong RDBMS.
Là tập hợp các document cùng loại, cùng chủ đề.
MongoDB không yêu cầu tất cả document trong cùng collection phải có cùng cấu trúc (schema-less).
3. Database (Cơ sở dữ liệu)#
Là tập hợp các collection.
Một MongoDB server có thể quản lý nhiều database khác nhau.
Một số đặc điểm nổi bật về cấu trúc dữ liệu MongoDB:#
Schema-less: Không cần định nghĩa cấu trúc trước, document trong cùng collection có thể khác nhau về trường dữ liệu.
Nested Documents: Document có thể chứa các document con lồng nhau, giúp mô hình hóa dữ liệu phức tạp dễ dàng.
Arrays: Có thể lưu mảng giá trị trong document, giúp lưu nhiều giá trị liên quan trong một document.
ObjectId: Mỗi document thường có trường
_id(bắt buộc), là khóa chính, kiểu ObjectId tự sinh để định danh duy nhất document đó.
Tóm lại#
| Thành phần | Mô tả | Tương đương RDBMS |
|---|---|---|
| Document | Bản ghi dữ liệu, dạng JSON | Record (row) |
| Collection | Tập hợp các document | Table |
| Database | Tập hợp các collection | Database |