Là gì MongoDB? Archikiến trúc, tính năng và ví dụ
⚡ Tóm tắt thông minh
MongoDB Đây là một cơ sở dữ liệu NoSQL hướng tài liệu được sử dụng để lưu trữ dữ liệu khối lượng lớn, sử dụng các tập hợp và tài liệu thay vì bảng và hàng. Tài liệu này giải thích MongoDB Các tính năng, ví dụ về tài liệu, các thành phần kiến trúc chính, lý do sử dụng, mô hình dữ liệu và sự khác biệt so với cơ sở dữ liệu quan hệ.

Là gì MongoDB?
MongoDB là cơ sở dữ liệu NoSQL hướng tài liệu được sử dụng để lưu trữ dữ liệu dung lượng lớn. Thay vì sử dụng bảng và hàng như trong cơ sở dữ liệu quan hệ truyền thống, MongoDB sử dụng các bộ sưu tập và tài liệu. Tài liệu bao gồm các cặp khóa-giá trị là đơn vị dữ liệu cơ bản trong MongoDBCác tập hợp chứa các nhóm tài liệu và hàm, tương đương với các bảng trong cơ sở dữ liệu quan hệ. MongoDB là một cơ sở dữ liệu được đưa ra ánh sáng vào khoảng giữa những năm 2000.
MongoDB Tính năng
- Mỗi cơ sở dữ liệu chứa các tập hợp, và các tập hợp này lại chứa các tài liệu. Mỗi tài liệu có thể khác nhau, với số lượng trường khác nhau. Kích thước và nội dung của mỗi tài liệu cũng có thể khác nhau.
- Cấu trúc tài liệu phù hợp hơn với cách các nhà phát triển xây dựng các lớp và đối tượng của họ bằng ngôn ngữ lập trình tương ứng. Các nhà phát triển thường nói rằng các lớp của họ không phải là hàng và cột mà có cấu trúc rõ ràng với các cặp khóa-giá trị.
- Các hàng (hoặc tài liệu như được gọi trong MongoDB(Không cần phải định nghĩa lược đồ trước. Thay vào đó, các trường có thể được tạo ra ngay lập tức.)
- Mô hình dữ liệu có sẵn trong MongoDB Cho phép bạn thể hiện các mối quan hệ thứ bậc, lưu trữ mảng và các cấu trúc phức tạp khác một cách dễ dàng hơn.
- khả năng mở rộng - MongoDB Môi trường này có khả năng mở rộng rất cao. Các công ty trên toàn thế giới đã xác định các cụm máy chủ, một số trong đó vận hành hơn 100 nút với hàng triệu tài liệu trong cơ sở dữ liệu.
MongoDB Ví dụ
Ví dụ dưới đây cho thấy cách một tài liệu có thể được mô hình hóa theo MongoDB.
- Trường _id được thêm bởi MongoDB để xác định duy nhất tài liệu trong bộ sưu tập.
- Điều bạn có thể nhận thấy là Dữ liệu Đơn hàng (Mã đơn hàng, Sản phẩm và Số lượng), thường được lưu trữ trong một bảng riêng biệt trong hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), lại được lưu trữ dưới dạng một tài liệu nhúng trong chính bộ sưu tập đó. MongoDBĐây là một trong những điểm khác biệt chính trong cách mô hình hóa dữ liệu. MongoDB.
Thành phần chính của MongoDB Archikiến trúc
Dưới đây là một số thuật ngữ thông dụng được sử dụng trong MongoDB:
- _Tôi – Đây là trường bắt buộc trong mọi MongoDB tài liệu. Trường _id đại diện cho một giá trị duy nhất trong MongoDB tài liệu. Trường _id giống như khóa chính của tài liệu. Nếu bạn tạo một tài liệu mới không có trường _id, MongoDB Trường đó sẽ được tự động tạo. Ví dụ, nếu ta xem bảng khách hàng ở trên, MongoDB Sẽ thêm một mã định danh duy nhất gồm 24 chữ số vào mỗi tài liệu trong bộ sưu tập.
| _Nhận dạng | ID khách hàng | Tên khách hàng | Mã đặt hàng |
|---|---|---|---|
| 563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
| 563479cc7a8a4246bd47d784 | 22 | Trevor Smith | 222 |
| 563479cc9a8a4246bd57d784 | 33 | Nicole | 333 |
- Bộ sưu tập – Đây là một nhómping of MongoDB tài liệu. Một tập hợp tương đương với một bảng được tạo trong bất kỳ hệ quản trị cơ sở dữ liệu quan hệ nào khác, chẳng hạn như... Oracle hoặc MS SQL. Một tập hợp (collection) tồn tại trong một cơ sở dữ liệu duy nhất. Như đã thấy trong phần giới thiệu, các tập hợp không bắt buộc bất kỳ cấu trúc nào.
- Cursor – Đây là con trỏ tới tập kết quả của truy vấn. Khách hàng có thể lặp qua một con trỏ để lấy kết quả.
- Cơ sở dữ liệu – Đây là một vùng chứa cho các tập hợp dữ liệu, tương tự như trong hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) nơi nó là một vùng chứa cho các bảng. Mỗi cơ sở dữ liệu có tập hợp các tệp riêng trên hệ thống tệp. MongoDB máy chủ có thể lưu trữ nhiều cơ sở dữ liệu.
- Tài liệu – Một bản ghi trong một MongoDB Về cơ bản, tập hợp dữ liệu được gọi là tài liệu. Tài liệu này, đến lượt nó, sẽ bao gồm tên trường và giá trị.
- Phần – Một cặp tên-giá trị trong tài liệu. Một tài liệu có thể có từ không đến nhiều trường. Các trường tương tự như các cột trong cơ sở dữ liệu quan hệ. Sơ đồ sau đây minh họa một ví dụ về các trường với các cặp khóa-giá trị. Vì vậy, trong ví dụ bên dưới, CustomerID và 11 là một trong những cặp khóa-giá trị được định nghĩa trong tài liệu.
- JSON – Đây được gọi là JavaScript Ký hiệu đối tượng. Đây là định dạng văn bản thuần túy, dễ đọc để thể hiện dữ liệu có cấu trúc. JSON hiện được hỗ trợ ở nhiều ngôn ngữ lập trình.
Chỉ cần lưu ý nhanh về sự khác biệt chính giữa trường _id và trường bộ sưu tập thông thường. Trường _id được sử dụng để xác định duy nhất các tài liệu trong bộ sưu tập và được thêm tự động bởi MongoDB khi bộ sưu tập được tạo.
Tại sao sử dụng MongoDB?
Dưới đây là một vài lý do tại sao bạn nên bắt đầu sử dụng MongoDB:
- Định hướng tài liệu - Từ MongoDB là một NoSQL loại cơ sở dữ liệu, thay vì có dữ liệu ở định dạng kiểu quan hệ, nó lưu trữ dữ liệu trong các tài liệu. Điều này làm cho MongoDB Rất linh hoạt và dễ thích ứng với các tình huống và yêu cầu thực tế trong thế giới kinh doanh.
- truy vấn đặc biệt – MongoDB hỗ trợ tìm kiếm theo trường, truy vấn phạm vi và tìm kiếm biểu thức chính quy. Có thể thực hiện truy vấn để trả về các trường cụ thể trong tài liệu.
- Lập chỉ mục – Có thể tạo chỉ mục để cải thiện hiệu suất tìm kiếm trong MongoDB. Bất kỳ trường nào trong một MongoDB tài liệu có thể được lập chỉ mục.
- Nhân rộng – MongoDB có thể cung cấp tính khả dụng cao với các bộ sao chép. Một bộ sao chép bao gồm hai hoặc nhiều bộ. MongoDB Mỗi thành viên trong bộ sao chép có thể đóng vai trò là bản sao chính hoặc bản sao phụ tại bất kỳ thời điểm nào. Bản sao chính là máy chủ chính tương tác với máy khách và thực hiện tất cả các thao tác đọc/ghi. Các bản sao phụ duy trì một bản sao dữ liệu của bản sao chính bằng cách sử dụng cơ chế sao chép tích hợp. Khi một bản sao chính gặp sự cố, bộ sao chép sẽ tự động chuyển sang bản sao phụ, và sau đó bản sao phụ trở thành máy chủ chính.
- cân bằng tải – MongoDB sử dụng khái niệm sharding để mở rộng quy mô theo chiều ngang bằng cách phân chia dữ liệu trên nhiều MongoDB các trường hợp. MongoDB có thể chạy trên nhiều máy chủ, cân bằng tải và/hoặc sao chép dữ liệu để duy trì hoạt động của hệ thống trong trường hợp lỗi phần cứng.
Mô hình hóa dữ liệu trong MongoDB
Như chúng ta đã thấy trong phần giới thiệu, dữ liệu trong MongoDB có một lược đồ linh hoạt. Không giống như ở SQL cơ sở dữ liệu, nơi bạn phải khai báo lược đồ của bảng trước khi chèn dữ liệu, MongoDBbộ sưu tập của không thực thi cấu trúc tài liệu. Sự linh hoạt này là điều khiến MongoDB mạnh mẽ như vậy.
Khi mô hình hóa dữ liệu trong MongoDB, hãy ghi nhớ những điều sau:
- Ứng dụng này cần những gì? – Hãy xem xét nhu cầu kinh doanh của ứng dụng và xác định loại dữ liệu nào cần thiết cho ứng dụng. Dựa trên đó, hãy đảm bảo cấu trúc của tài liệu được quyết định cho phù hợp.
- Các mô hình truy xuất dữ liệu là gì? – Nếu bạn dự đoán sẽ có nhiều truy vấn, hãy cân nhắc sử dụng chỉ mục trong mô hình dữ liệu của mình để cải thiện hiệu quả truy vấn.
- Có thường xuyên xảy ra các thao tác thêm, cập nhật và xóa dữ liệu trong cơ sở dữ liệu không? Hãy xem xét lại việc sử dụng chỉ mục hoặc tích hợp phân mảnh dữ liệu nếu cần thiết trong thiết kế mô hình dữ liệu của bạn để cải thiện hiệu quả tổng thể. MongoDB môi trường.
Sự khác biệt giữa MongoDB & RDBMS
Dưới đây là một số khác biệt về thuật ngữ chính giữa MongoDB và RDBMS:
| RDBMS | MongoDB | Sự khác biệt |
|---|---|---|
| Bàn | Bộ sưu tập | In RDBMSBảng chứa các cột và hàng được sử dụng để lưu trữ dữ liệu, trong khi đó... MongoDB Cấu trúc này được gọi là một tập hợp (collection). Tập hợp chứa các tài liệu, mỗi tài liệu lại chứa các trường (fields), và các trường này lại là các cặp khóa-giá trị. |
| Row | Tài liệu | Trong RDBMS, hàng đại diện cho một mục dữ liệu có cấu trúc ngầm trong một bảng. TRONG MongoDB, dữ liệu được lưu trữ trong tài liệu. |
| Cột | Phần | Trong RDBMS, cột biểu thị một tập hợp các giá trị dữ liệu. Những cái này trong MongoDB Chúng được gọi là các cánh đồng. |
| Tham gia | Tài liệu được nhúng | Trong hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), dữ liệu đôi khi được phân tán trên nhiều bảng khác nhau, và để hiển thị toàn bộ dữ liệu, đôi khi người ta sử dụng phép nối (join) giữa các bảng để lấy dữ liệu. MongoDBThông thường, dữ liệu được lưu trữ trong một tập hợp duy nhất, nhưng được phân tách bằng cách sử dụng các tài liệu nhúng. Vì vậy, không có khái niệm về phép nối (join) trong đó. MongoDB. |
Ngoài sự khác biệt về thuật ngữ, một vài điểm khác biệt khác được nêu dưới đây:
- Cơ sở dữ liệu quan hệ được biết đến với việc thực thi tính toàn vẹn dữ liệu. Đây không phải là một yêu cầu rõ ràng trong MongoDB.
- RDBMS yêu cầu dữ liệu đó được bình thường hóa Đầu tiên là để ngăn chặn các bản ghi mồ côi và các bản ghi trùng lặp. Việc chuẩn hóa dữ liệu sau đó đòi hỏi nhiều bảng hơn, dẫn đến nhiều phép nối bảng hơn, do đó cần nhiều khóa và chỉ mục hơn. Khi cơ sở dữ liệu bắt đầu phát triển, hiệu suất có thể trở thành vấn đề. Một lần nữa, đây không phải là một yêu cầu rõ ràng trong MongoDB. MongoDB linh hoạt và không cần chuẩn hóa dữ liệu trước.


