MongoDB là gì? Những tính năng của MongoDB bạn nên biết

MongoDB là một chương trình cơ sở dữ liệu định hướng tài liệu đa nền tảng. Được phân loại là một chương trình cơ sở dữ liệu NoQuery, MongoDB sử dụng các tài liệu giống như JSON với các lược đồ tùy chọn. MongoDB được phát triển bởi MongoDB Inc. và được cấp phép theo Giấy phép Công cộng phía Máy chủ. Để tìm hiểu thêm những thông tin liên quan đến MongoDB mời bạn theo dõi bài viết dưới đây.

MongoDB là gì?

MongoDB là một database hướng tài liệu (document), một dạng NoSQL database. Vì thế, MongoDB sẽ tránh cấu trúc table-based của relational database để thích ứng với các tài liệu như JSON có một schema rất linh hoạt gọi là BSON. MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ các các kích cỡ và các document khác nhau. Các dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh.

MongoDB là gì?

Định nghĩa thêm về MongoDB

MongoDB lần đầu ra đời bởi MongoDB Inc., tại thời điểm đó là thế hệ 10, vào tháng Mười năm 2007, nó là một phần của sản phẩm PaaS (Platform as a Service) tương tự như Windows Azure và Google App Engine. Sau đó nó đã được chuyển thành nguồn mở từ năm 2009.

MongoDB đã trở thành một trong những NoSQL database nổi trội nhất bấy giờ, được dùng làm backend cho rất nhiều website như eBay, SourceForge và The New York Times.

Các feature của MongoDB gồm có:

  • Các ad hoc query: hỗ trợ search bằng field, các phép search thông thường, regular expression searches, và range queries.
  • Indexing: bất kì field nào trong BSON document cũng có thể được index.
  • Replication: có ý nghĩa là “nhân bản”, là có một phiên bản giống hệt phiên bản đang tồn tại, đang sử dụng. Với cơ sở dữ liệu, nhu cầu lưu trữ lớn, đòi hỏi cơ sở dữ liệu toàn vẹn, không bị mất mát trước những sự cố ngoài dự đoán là rất cao. Vì vậy, người ta nghĩ ra khái niệm “nhân bản”, tạo một phiên bản cơ sở dữ liệu giống hệt cơ sở dữ liệu đang tồn tại, và lưu trữ ở một nơi khác, đề phòng có sự cố.
  • Aggregation: Các Aggregation operation xử lý các bản ghi dữ liệu và trả về kết quả đã được tính toán. Các phép toán tập hợp nhóm các giá trị từ nhiều Document lại với nhau, và có thể thực hiện nhiều phép toán đa dạng trên dữ liệu đã được nhóm đó để trả về một kết quả duy nhất. Trong SQL, count(*) và GROUP BY là tương đương với Aggregation trong MongoDB.
  • Lưu trữ file: MongoDB được dùng như một hệ thống file tận dụng những function trên và hoạt động như một cách phân phối qua sharding.

Tính năng của MongoDB là gì?

Lệnh truy vấn dữ liệu trong MongoDB

Truy vấn ad hoc

Truy vấn ad hoc là một trong những tính năng tốt nhất của chương trình. Nó hỗ trợ các trường, truy vấn phạm vi và tìm kiếm các biểu thức để trả về các trường tài liệu cụ thể bao gồm các hàm JavaScript do người dùng xác định hoặc các truy vấn này được cấu hình và trả về mẫu kết quả ngẫu nhiên có kích thước nhất định. Bên cạnh đó, các trường trong MongoDB có thể được dùng để lập các chỉ mục chính và các chỉ mục phụ.

Nhân rộng

Đây là tính năng mà chương trình cung cấp Replica set. Nó bao gồm hai hoặc nhiều bản sao của dữ liệu. Trong đó mỗi bản sao có thể đóng vai trò chính và phụ.

  • Trong quá trình nhân rộng, tất cả các dữ liệu ghi và đọc thực hiện trên bản sao chính.
  • Bản sao thứ cấp sử dụng bản sao tích hợp để duy trì bản sao dữ liệu của bản chính.

Trong trường hợp một bản sao chính thất bại, Replica set chọn ra một bản sao thứ cấp để trở thành bản sao chính tiếp theo. Replica thứ cấp có thể tùy chọn phục vụ các hoạt động nhưng dữ liệu cuối cùng chỉ nhất quán theo mặc định.

Cân bằng tải

Bằng cách sử dụng Sharding, MongoDB chia tỷ lệ theo chiều ngang để người dùng chọn một Shard key. Xác định các dữ liệu được phân phối trong collection. Nhìn chung, dữ liệu được chia thành các phạm vi và được phân phối đồng đều dựa trên các Shard key. Nó chạy trên nhiều máy chủ, cân bằng tải hoặc sao chép dữ liệu để giữ hệ thống luôn hoạt động trong trường hợp có lỗi về phần cứng.

Lưu trữ tệp

Với tính năng lưu trữ tệp, MongoDB được sử dụng như một hệ thống tệp (GridFS) giúp cân bằng tải và sao chép dữ liệu trên nhiều máy tính để lưu trữ tệp. Trong đó, GridFS chia một tệp ra thành các phần hoặc các đoạn và lưu trữ thành những tài liệu riêng biệt. Bạn có thể truy cập GridFS bằng tiện ích Mongofiles hoặc plugin cho Nginx và Lighttpd.

Tập hợp

Ở tính năng tập hợp, chương trình này cung cấp ba cách chính để thực hiện tập hợp là Aggregation Pipeline, chức năng Mapreduce và Single-purpose Aggregation. Trong đó, theo tài liệu của MongoDB thì Aggregation Pipeline được công nhận là cung cấp hiệu suất tốt hơn hầu hết các hoạt động tổng hợp.

Thực thi Javascript phía máy chủ

JavaScript thường được thực thi trong các truy vấn, các hàm tổng hợp và được gửi trực tiếp đến cơ sở dữ liệu.

Giới hạn kích thước collection

MongoDB hỗ trợ collection có kích thước cố định được gọi là collection giới hạn. Nó có kích cỡ cố định theo sau thứ tự chèn làm tăng hiệu suất các hoạt động khác có liên quan đến dữ liệu. Khi dữ liệu vượt quá mức giới hạn thì các tài liệu cũ sẽ bị xóa mà không cần dùng bất cứ dòng lệnh nào.

Giao dịch

MongoDB còn có tính năng hỗ trợ cho các giao dịch ACID đa tài liệu, bắt đầu có hiệu dụng từ phiên bản 4.0 vào tháng 6 năm 2018.

Ưu điểm của MongoDB là gì?

Ưu điểm của MongoDB là gì?

Sử dụng MongoDB mang lại rất nhiều lợi ích đến người dùng.

  • Đầu tiên có thể nhắc đến là tính linh hoạt lưu trữ dữ liệu theo các kích cỡ khác nhau, dữ liệu dưới dạng hướng tài liệu JSON nên bạn có thể chèn vào thoải mái bất cứ thông tin gì bạn muốn.
  • Khác với RDBMS, dữ liệu trong đây không có sự ràng buộc và không có yêu cầu tuân theo khuôn khổ nhất định, điều này giúp bạn tiết kiệm thời gian cho việc kiểm tra sự thỏa mãn về cấu trúc nếu muốn chèn, xóa, cập nhật hay thay đổi các dữ liệu trong bảng.
  • MongoDB dễ dàng mở rộng hệ thống bằng cách thêm node vào cluster – cụm các node chứa dữ liệu giao tiếp với nhau.
  • Ưu điểm thứ tư là tốc độ truy vấn nhanh hơn nhiều so với hệ quản trị cơ sở dữ liệu quan hệ RDBMS do dữ liệu truy vấn được cached lên bộ nhớ RAM để lượt truy vấn sau diễn ra nhanh hơn mà không cần đọc từ ổ cứng.
  • Cũng là một ưu điểm về hiệu suất truy vấn của MongoDB, trường dữ liệu “_id” luôn được tự động đánh chỉ mục để đạt hiệu suất cao nhất.

Nhược điểm của MongoDB là gì?

Phải mất 60 giây thì dữ liệu từ RAM mới đến được ổ cứng

Ngoài các ưu điểm vượt trội, vẫn còn một số hạn chế khi cài đặt và sử dụng bạn cần chú ý như sau:

  • Dữ liệu trong MongoDB không bị ràng buộc như RDBMS nhưng người sử dụng lưu ý cẩn thận mọi thao tác để không xảy ra các kết quả ngoài ý muốn gây ảnh hưởng đến dữ liệu.
  • Một nhược điểm mà “dân công nghệ” hay lo ngại là bộ nhớ của thiết bị. Chương trình này thường tốn bộ nhớ do dữ liệu được lưu dưới dạng key-value, trong khi các collection chỉ khác về value nên sẽ lặp lại key dẫn đến thừa dữ liệu.
  • Thông thường, dữ liệu thay đổi từ RAM xuống ổ cứng phải qua 60 giây thì chương trình mới thực hiện hoàn tất, đây là nguy cơ bị mất dữ liệu nếu bất ngờ xảy ra tình huống mất điện trong vòng 60 giây đó.

Khi nào nên dùng MongoDB?

Mặc dù rất hữu dụng nhưng tùy theo tình huống khác nhau mà bạn sẽ cân nhắc có nên sử dụng chương trình này hay không, đó là trường hợp:

  • Khi trang web của bạn có tính chất Insert bởi MongoDB có thể ghi với tốc độ cao và bảo mật an toàn.
  • Khi một số hệ thống Big Data có yêu cầu truy vấn nhanh vì chương trình này có hiệu suất truy vấn dữ liệu khá cao.
  • Khi bạn muốn tìm kiếm thông tin trong bộ nhớ “tràn ngập” những dữ liệu khác nhau, MongoDB có khả năng tìm kiếm thông tin liên quan nhanh.
  • Khi máy chủ không có hệ quản trị cơ sở dữ liệu thì đây là chương trình phù hợp nên được sử dụng.

Vì thế, trước khi dùng MongoDB, bạn cần phải cân nhắc kỹ lưỡng tính năng của nó có đáp ứng được trường hợp của bạn hay không để việc sử dụng không gặp khó khăn và đạt hiệu quả tốt nhất.

So sánh giữa SQL DB (RDBMS) schema và Mongo DB schema

Ở một số nội dung bên trên, chúng tôi có phân biệt sự khác nhau về cách lưu trữ dữ liệu giữa hệ quản trị RDBMS và chương trình MongoDB. Để bạn hiểu thêm về sự khác nhau đó, bảng sau đây sẽ là phép so sánh cụ thể hơn về những đặc điểm giữa 2 chương trình này:

SQL DB schema Mongo DB schema
Table Collection
Row Document
Column Field
Joins Embedded documents, linking
Primary key Primary key (mặc định là _id)

Các câu lệnh cơ bản trên MongoDB

Cách lưu trữ theo hướng tài liệu trong MongoDB

Ứng với các lệnh cơ bản của SQL thì chương trình này có các câu lệnh như sau:

Trên đây là những thông tin liên quan đến MongoDB do dean2020.edu.vn đã tổng hợp và chia sẻ đến các bạn. Chúng tôi hy vọng bạn có cái nhìn tổng quan về MongoDB. Đồng thời có thể ứng dụng hiệu quả vào máy tính trong những trường hợp cần thiết nhé!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *