- Chuyên mục khác :
- Git cơ bản và nâng cao
- ·
- MySQL cơ bản và nâng cao
- ·
- MongoDB cơ bản và nâng cao
- ·
- SQL cơ bản và nâng cao
- ·
- Linux cơ bản và nâng cao
- Cơ bản về MongoDB
- Học MongoDB cơ bản và nâng cao
- Tổng quan về MongoDB
- Lợi thế của MongoDB
- Cài đặt MongoDB
- Mô hình hóa dữ liệu trong MongoDB
- Tạo Database trong MongoDB
- Xóa Database trong MongoDB
- Tạo Collection trong MongoDB
- Xóa Collection trong MongoDB
- Kiểu dữ liệu trong MongoDB
- Chèn Document trong MongoDB
- Truy vấn Document trong MongoDB
- Cập nhật Document trong MongoDB
- Xóa Document trong MongoDB
- Projection trong MongoDB
- Giới hạn bản ghi trong MongoDB
- Sắp xếp bản ghi trong MongoDB
- Chỉ mục (Index) trong MongoDB
- Aggregation trong MongoDB
- Replica Set trong MongoDB
- Shard trong MongoDB
- Tạo Backup trong MongoDB
- MongoDB Deployment
- Hoạt động MongoDB nâng cao
- Relationship trong MongoDB
- Tham chiếu Database trong MongoDB
- Covered Query trong MongoDB
- Phân tích truy vấn trong MongoDB
- Hoạt động nguyên tử (Atomic Operation) trong MongoDB
- Hoạt động chỉ mục nâng cao trong MongoDB
- Hạn chế của chỉ mục trong MongoDB
- ObjectId trong MongoDB
- Map Reduce trong MongoDB
- Text Search trong MongoDB
- Regular Expression trong MongoDB
- Làm việc với Rockmongo
- GridFS trong MongoDB
- Capped Collection trong MongoDB
- Auto-Increment Sequence trong MongoDB
Dữ liệu trong MongoDB có một Schema linh động. Các Document trong cùng Collection không cần thiết phải có cùng tập hợp các trường hoặc cấu trúc, và các trường chung trong các Document của Collection có thể giữ các kiểu dữ liệu khác nhau.
Một số chú ý trong khi thiết kế Schema trong MongoDB
Thiết kế Schema của bạn theo yêu cầu của người dùng.
Tổ hợp các đối tượng vào trong một Document nếu bạn sẽ sử dụng các đối tượng đó cùng nhau. Nếu không, bạn nên phân biệt chúng (nhưng đảm bảo là không cần thiết sử dụng các Join).
Sao dữ liệu (nhưng có giới hạn) bởi vì không gian trên đĩa không là gì khi so sánh với thời gian tính toán.
Thực hiện Join trong khi ghi, đừng thực hiện trong khi đọc.
Tối ưu hóa Schema của bạn với các trường hợp thường xuyên sử dụng.
Thực hiện Aggregation phức tạp trong Schema đó.
Ví dụ
Giả sử, một khách hàng cần một thiết kế cơ sở dữ liệu cho trang blog của anh ta, và dưới đây, bạn xem các điểm khác nhau giữa thiết kế Schema của RDBMS và MongoDB. Website này có các yêu cầu sau:
Mỗi post có tiêu đề, miêu tả và Url duy nhất.
Mỗi post có thể có một hoặc nhiều tags.
Mỗi post có tên người đăng và tổng số like.
Mỗi post có các comment được cung cấp bởi người dùng cùng với tên, thông điệp, thời gian, và like của họ.
Trên mỗi post, có thể có 0 hoặc nhiều comment.
Trong thiết kế Schema của RDBMS cho các yêu cầu trên sẽ có tối thiểu ba bảng dữ liệu:
Trong khi trong thiết kế Schema của MongoDB sẽ chỉ có một Collection Post có cấu trúc như sau:
{ _id: POST_ID title: TITLE_OF_POST, description: POST_DESCRIPTION, by: POST_BY, url: URL_OF_POST, tags: [TAG1, TAG2, TAG3], likes: TOTAL_LIKES, comments: [ { user:'COMMENT_BY', message: TEXT, dateCreated: DATE_TIME, like: LIKES }, { user:'COMMENT_BY', message: TEXT, dateCreated: DATE_TIME, like: LIKES } ] }
Vì thế trong khi hiển thị dữ liệu, trong RDBMS bạn cần kết hợp ba bảng và trong MongoDB sẽ chỉ cần hiển thị từ một Collection.
Các bài học lập trình MongoDB phổ biến khác tại s2sontech:
Bình luận (0)