TopDev

Cấu trúc dữ liệu trong MongoDB như thế nào?

minhdev 📖 2 phút đọc

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

Bài liên quan trong #Database

✓ Đã sao chép link