Chuyên đề MongoDB: document model, index, replica set, sharding, transaction và các câu hỏi phỏng vấn thường gặp
MongoDB là một document database điển hình, phù hợp với dữ liệu bán cấu trúc, mô hình field linh hoạt và các trường hợp sử dụng cần lặp nhanh. Khi học MongoDB, nên tập trung hiểu document model, index, replica set, sharding, aggregation và khả năng transaction, thay vì chỉ xem nó đơn giản là “database có thể lưu JSON”.
Dành cho ai
- Backend developer muốn tìm hiểu các khái niệm cốt lõi của MongoDB và document database.
- Người chuẩn bị các câu hỏi phỏng vấn liên quan đến MongoDB, NoSQL và document model.
- Kỹ sư cần lựa chọn giữa relational database và document database.
- Người đã tiếp xúc với MongoDB nhưng chưa nắm vững index, replica set, sharding và cơ chế transaction.
Trọng tâm học
- Database, collection, document của MongoDB khác gì với database, table, row trong relational database?
- Document model phù hợp với những cấu trúc dữ liệu nào, khi nào không nên dùng MongoDB?
- Index, aggregation pipeline, replica set và sharding của MongoDB lần lượt giải quyết vấn đề gì?
- Nên hiểu read concern, write concern, transaction và semantics về consistency như thế nào?
- Trong phỏng vấn, trả lời câu hỏi về MongoDB từ các khía cạnh “model, query, index, high availability, scalability, use case” như thế nào?
Thứ tự đọc đề xuất
- Tổng hợp câu hỏi phỏng vấn NoSQL cơ bản: trước tiên tìm hiểu phân loại NoSQL, trường hợp sử dụng và khác biệt so với relational database.
- Tổng hợp câu hỏi phỏng vấn MongoDB (phần 1): tìm hiểu khái niệm cơ bản, document model, index và query của MongoDB.
- Tổng hợp câu hỏi phỏng vấn MongoDB (phần 2): tiếp tục tìm hiểu replica set, sharding, transaction, aggregation và thực tiễn production.
- Sau đó quay lại Hệ thống kiến thức Database, đặt MongoDB cạnh MySQL, Redis và Elasticsearch để so sánh vị trí của chúng.
Bài viết cốt lõi
- Tổng hợp câu hỏi phỏng vấn MongoDB (phần 1): bao quát khái niệm cơ bản, document model, collection, query, index và các vấn đề sử dụng thường gặp của MongoDB.
- Tổng hợp câu hỏi phỏng vấn MongoDB (phần 2): bao quát replica set, sharding, transaction, aggregation, read/write concern, storage engine và thực tiễn production.
- Tổng hợp câu hỏi phỏng vấn NoSQL cơ bản: giúp hiểu vị trí của MongoDB trong hệ sinh thái NoSQL và sự khác biệt với key-value database, column-family database và graph database.
Câu hỏi thường gặp
- MongoDB khác MySQL như thế nào?
- Document model của MongoDB phù hợp với những trường hợp sử dụng nào?
- MongoDB có những loại index nào? Thiết kế index như thế nào?
- Replica set của MongoDB đảm bảo high availability như thế nào?
- Sharding của MongoDB giải quyết vấn đề gì? Chọn shard key như thế nào?
- MongoDB có hỗ trợ transaction không? Có phù hợp với các trường hợp sử dụng transaction phức tạp không?
- Aggregation pipeline của MongoDB phù hợp để giải quyết những vấn đề nào?
- Read concern và write concern lần lượt kiểm soát điều gì?
- Những trường hợp nào không phù hợp để sử dụng MongoDB?
- MongoDB, Redis và Elasticsearch khác nhau về vị trí như thế nào?
Chuyên đề liên quan
Lời cuối
Nếu nội dung hữu ích với bạn, hãy tiện tay tặng JavaGuide một Star miễn phí để ủng hộ: GitHub | Gitee.
JavaGuide đã được duy trì gần bảy năm, tích lũy 6100+ commit, với sự chung tay hoàn thiện của 620+ contributor. Star, phản hồi và PR của bạn đều là động lực để dự án tiếp tục cập nhật.
Nếu bạn đang chuẩn bị phỏng vấn backend / phát triển ứng dụng AI, có thể tham khảo Knowledge Planet của tôi, bao gồm các project thực tế về backend và AI, tối ưu CV, hỏi đáp 1-1 và tài liệu về các trọng điểm thường gặp, đã được duy trì liên tục sáu năm.
