Bước đầu tiên khi sử dụng MongoDB là hiểu các khái niệm cơ bản của MongoDB và mô hình dữ liệu (cấu trúc dữ liệu), biết cách dữ liệu được lưu trữ. Trên thực tế, MongoDB rất tương tự MySQL, vì vậy ai đã biết MySQL sẽ không gặp bất kỳ khó khăn nào khi học MongoDB.
Các Khái Niệm Cơ Bản của MongoDB
Cơ Sở Dữ Liệu
Cơ sở dữ liệu của MongoDB giống với cơ sở dữ liệu của MySQL.
Bộ Sưu Tập
Một bộ sưu tập MongoDB đề cập đến một bộ sưu tập dữ liệu tài liệu, tương tự như khái niệm bảng trong MySQL.
Tài Liệu
Một tài liệu MongoDB, tương tự như một hàng dữ liệu trong bảng MySQL, là một tài liệu dạng JSON bao gồm nhiều trường, làm cho cấu trúc tài liệu trong MongoDB rất linh hoạt.
Trường
Một trường tài liệu MongoDB tương tự như khái niệm trường trong bảng MySQL, đại diện cho dữ liệu cụ thể cần lưu trữ, với mỗi trường có kiểu dữ liệu riêng.
Chỉ mục
Chỉ mục MongoDB tương tự như chỉ mục MySQL, với mục đích cải thiện hiệu suất truy vấn.
Tổng Hợp
Khái niệm tổng hợp MongoDB tương tự như tổng hợp phân nhóm/đếm/tổng trong MySQL, được sử dụng cho phân tích thống kê dữ liệu.
So Sánh Các Khái Niệm giữa MongoDB và MySQL
MYSQL | MongoDB |
---|---|
Cơ sở dữ liệu | Cơ sở dữ liệu |
Bảng | Bộ sưu tập |
Hàng | Tài liệu |
Cột | Trường Tài Liệu |
Chỉ mục | Chỉ mục |
Tổng Hợp (ví dụ, nhóm theo) | Tổng Hợp |
Nhìn chung, các khái niệm của MongoDB có thể tương đồng với MySQL, vì vậy MongoDB là cơ sở dữ liệu phi mối quan hệ (NoSQL) tương tự nhất với cơ sở dữ liệu mối quan hệ.
Dữ Liệu Tài Liệu MongoDB
Một tài liệu đơn giản là một cấu trúc JSON bao gồm nhiều trường, mỗi trường có kiểu dữ liệu riêng. Khi phát triển với MongoDB, trọng tâm chủ yếu là cách thiết kế cấu trúc tài liệu, tương tự như việc thiết kế cấu trúc bảng trong MySQL.
Ví dụ về dữ liệu tài liệu MongoDB:
{
"_id": "5cf0029caff5056591b0ce7d",
"firstname": "Jane",
"lastname": "Wu",
"address": {
"street": "1 Circle Rd",
"city": "Los Angeles",
"state": "CA",
"zip": "90404"
},
"hobbies": ["lướt sóng", "lập trình"]
}
Nó có thể là bất kỳ cấu trúc JSON lồng nhau nào, điều mà cấu trúc bảng MySQL không thể đạt được. Trường _id
đóng vai trò là khóa chính của tài liệu, và nếu bạn không chỉ định một giá trị cụ thể, MongoDB sẽ tạo ra một giá trị duy nhất ngẫu nhiên.
Sự khác biệt lớn nhất giữa cấu trúc dữ liệu của MongoDB và các bảng MySQL là MongoDB không yêu cầu xác định trước cấu trúc tài liệu. Với MongoDB, bạn có thể trực tiếp chèn dữ liệu JSON vào một bộ sưu tập mà không cần bất kỳ mục đích cụ thể nào. Mỗi khi bạn ghi dữ liệu JSON vào một bộ sưu tập MongoDB, định dạng có thể khác nhau, cho phép thêm hoặc loại bỏ trường theo ý muốn.
Lưu ý: Mặc dù cấu trúc tài liệu của MongoDB khá linh hoạt và có thể thích ứng với nhiều định dạng dữ liệu khác nhau cho mỗi mục nhập, trong ứng dụng thực tế, cấu trúc dữ liệu trong một bộ sưu tập thường là đồng nhất. Nếu không, nếu định dạng của mỗi mục nhập khác nhau trong bộ sưu tập, việc duy trì nó sẽ là một cơn ác mộng vì bạn sẽ không biết định dạng dữ liệu được truy xuất mỗi lần.