NỘI DUNG
Định nghĩa MongoDB
MongoDB là một chương trình cơ sở dữ liệu định hướng đa nền tảng dựa trên document.
MongoDB được phân loại là một chương trình cơ sở dữ liệu NoSQL, sử dụng các tài liệu giống như JSON với schemata.
MongoDB được phát triển bởi MongoDB Inc. và được cấp phép theo Server Side Public License (SSPL).
Tính năng của MongoDB
Truy vấn ad hoc
MongoDB hỗ trợ trường, truy vấn phạm vi và tìm kiếm biểu thức thông thường.
Các truy vấn có thể trả về các trường tài liệu cụ thể và cũng bao gồm các hàm JavaScript do người dùng xác định.
Các truy vấn cũng có thể được cấu hình để trả về một mẫu kết quả ngẫu nhiên có kích thước nhất định.
Lập chỉ mục
Các trường trong tài liệu MongoDB có thể được lập chỉ mục với các chỉ mục chính và phụ.
Nhân rộng
MongoDB cung cấp replica set có tính sẵn sàng cao.
Replica set bao gồm hai hoặc nhiều bản sao của dữ liệu. Mỗi replica set member có thể đóng vai trò là bản sao chính hoặc phụ bất cứ lúc nào.
Tất cả các ghi và đọc được thực hiện trên bản sao chính theo mặc định.
Bản sao thứ cấp duy trì một bản sao dữ liệu của bản chính bằng cách sử dụng bản sao tích hợp.
Khi một bản sao chính thất bại, replica set sẽ tự động tiến hành một quá trình bầu cử để xác định thứ cấp nào sẽ trở thành chính.
Replica thứ cấp có thể tùy chọn phục vụ các hoạt động đọc, nhưng dữ liệu đó cuối cùng chỉ nhất quán theo mặc định.
Cân bằng tải
MongoDB chia tỷ lệ theo chiều ngang bằng cách sử dụng sharding.
Người dùng chọn một shard key, xác định cách dữ liệu trong collection sẽ được phân phối.
Dữ liệu được chia thành các phạm vi (dựa trên shard key) và được phân phối trên nhiều phân đoạn shard. (Mỗi phân đoạn là một master với một hoặc nhiều bản sao.).
Ngoài ra, khóa phân đoạn có thể được băm để ánh xạ tới phân đoạn – cho phép phân phối dữ liệu đồng đều.
MongoDB có thể chạy trên nhiều máy chủ, cân bằng tải hoặc sao chép dữ liệu để giữ cho hệ thống luôn hoạt động trong trường hợp có lỗi phần cứng.
Lưu trữ tệp
MongoDB có thể được sử dụng như một hệ thống tệp, được gọi là GridFS, với tính năng cân bằng tải và sao chép dữ liệu trên nhiều máy để lưu trữ tệp.
Hàm này, được gọi là hệ thống tệp lưới, được bao gồm trong trình điều khiển MongoDB.
MongoDB trưng bày các chức năng để thao tác tệp và nội dung cho các nhà phát triển.
Có thể truy cập GridFS bằng tiện ích mongofiles hoặc plugin cho Nginx và lighttpd.
GridFS chia một tệp thành các phần hoặc các đoạn và lưu trữ từng khối đó thành một tài liệu riêng biệt.
Tập hợp
MongoDB cung cấp ba cách để thực hiện tổng hợp: aggregation pipeline, chức năng map-reduce và single-purpose aggregation.
Map-less có thể được sử dụng để xử lý hàng loạt dữ liệu và hoạt động tổng hợp. Nhưng theo tài liệu của MongoDB, aggregation pipeline cung cấp hiệu suất tốt hơn cho hầu hết các hoạt động tổng hợp.
Khung tổng hợp cho phép người dùng có được loại kết quả mà mệnh đề SQL GROUP BY được sử dụng.
Các toán tử tập hợp có thể được xâu chuỗi lại với nhau để tạo thành một đường ống – tương tự như các ống Unix.
Khung tổng hợp bao gồm toán tử tra cứu $ có thể nối các tài liệu từ nhiều tài liệu, cũng như các toán tử thống kê như độ lệch chuẩn.
Thực thi JavaScript phía máy chủ
JavaScript có thể được sử dụng trong các truy vấn, hàm tổng hợp (như MapReduce) và được gửi trực tiếp đến cơ sở dữ liệu sẽ được thực thi.
Giới hạn kích thước collection
MongoDB hỗ trợ các bộ sưu tập kích thước cố định được gọi là collection giới hạn.
Loại bộ sưu tập này duy trì thứ tự chèn và, khi đã đạt đến kích thước được chỉ định, sẽ hoạt động giống như một hàng đợi tròn.
Giao dịch
Hỗ trợ cho các giao dịch ACID đa tài liệu đã được thêm vào MongoDB với Tính khả dụng chung của phiên bản 4.0 vào tháng 6 năm 2018.