Sự khác biệt cốt lõi giữa Embedded Document và Referenced Document trong thiết kế schema của MongoDB là gì và khi nào Junior nên chọn phương án nào?
1. Sự khác biệt cốt lõi
- Embedded Document (Nhúng tài liệu): Lưu trữ dữ liệu liên quan trực tiếp bên trong một document chính. Giúp truy vấn dữ liệu toàn diện chỉ trong một thao tác đọc duy nhất.
- Referenced Document (Tham chiếu tài liệu): Lưu trữ dữ liệu liên quan ở các collection khác và liên kết chúng thông qua ObjectId (giống khóa ngoại trong SQL).
2. Tiêu chí lựa chọn cho Junior
- Nên chọn Embedded khi:
- Mối quan hệ là 1-1 hoặc 1-few (một-vài).
- Dữ liệu con thường xuyên được truy xuất cùng với dữ liệu cha.
- Ví dụ: Một bài viết (Post) có danh sách các bình luận ngắn (Comments) giới hạn số lượng.
- Nên chọn Referenced khi:
- Mối quan hệ là 1-many lớn hoặc many-many.
- Dữ liệu con thay đổi độc lập và phát triển với kích thước không giới hạn (tránh vượt quá giới hạn 16MB của một document trong MongoDB).
- Ví dụ: Sản phẩm trong kho hàng liên kết với danh mục sản phẩm lớn.
3. Kinh nghiệm thực chiến
Junior thường hay lạm dụng việc nhúng toàn bộ dữ liệu khiến document phình to, làm giảm hiệu năng ghi dữ liệu và vi phạm giới hạn kích thước của MongoDB. Hãy cân nhắc kỹ về tốc độ đọc so với tốc độ ghi trước khi quyết định thiết kế schema.
Làm Chủ Phỏng Vấn & Nâng Cao Trình Độ Chuyên Nghiệp
Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.
Tải Tuyển Tập 100+ Câu Hỏi Phỏng Vấn Chuyên Sâu (PDF)
Bộ tài liệu chuẩn Senior do Unicode Academy tuyển chọn & biên soạn, hỗ trợ tải về định dạng PDF chuẩn in ấn.
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?
Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.
Kiểm Tra CV Chuẩn ATS Miễn Phí
Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.
Câu hỏi mongodb liên quan cùng chủ đề
- Làm thế nào để tối ưu hóa hiệu năng và quản lý Document BSON structure trong dự án Mongodb? Entry
- Làm thế nào để tối ưu hóa hiệu năng và quản lý GridFS file storage trong dự án Mongodb? Entry
- Trong MongoDB, sự khác biệt giữa cơ chế Write Concern và Read Preference ảnh hưởng như thế nào đến tính nhất quán dữ liệu trong hệ thống phân tán? Junior
- Tại sao việc sử dụng toán tử $push kết hợp với $each trong MongoDB lại hiệu quả hơn việc cập nhật mảng thủ công trong ứng dụng? Junior
- Cơ chế TTL Index (Time-To-Live) trong MongoDB hoạt động như thế nào và những rào cản kỹ thuật nào cần lưu ý khi triển khai? Junior


