MongoDB là gì? Tính năng nổi bật từ MongoDB bạn cần biết – Trung tâm hỗ trợ kỹ thuật | MATBAO.NET

MongoDB là gì?

MongoDB là phần mềm cơ sở dữ liệu mã nguồn mở NoSQL hỗ trợ đa nền tảng được thiết kế theo hướng đối tượng. Các bảng (trong MongoDB gọi là collection) có cấu trúc linh hoạt cho phép dữ liệu không cần tuân theo dạng cấu trúc nào. Vậy cấu trúc của MongoDB là gì?

MongoDB là gì? Nó là thuật ngữ không xa lạ về cơ sở dữ liệu trên máy tínhMongoDB là thuật ngữ không xa lạ về cơ sở dữ liệu trên máy tínhVì thế, nó hoàn toàn có thể dùng để tàng trữ tài liệu có cấu trúc phức tạp và phong phú. Dữ liệu được gọi là Big Data. Đặc biệt, chương trình này tàng trữ tài liệu vào collection theo hướng tài liệu kiểu JSON thay vì bảng nên có hiệu suất cao và tính khả dụng cao .

NoSQL là gì?

Mongodb là gì? NoSQL và MongoDB có mối quan hệ với nhauNoSQL và MongoDB có mối quan hệ với nhau

Trong khái niệm của MongoDB có nhắc đến NoSQL, vậy NoSQL là gì? NoSQL (Non-Relational SQL) là dạng cơ sở dữ liệu mã nguồn mở được ra đời như một mô hình tiến bộ hơn về tốc độ, tính năng,… so với hệ quản trị cơ sở dữ liệu quan hệ RDBMS. NoSQL có kiểu dữ liệu JSON. Đây là dạng dữ liệu kiểu key và value cùng với hiệu suất nhanh và khả năng mở rộng không bị ràng buộc bởi việc tạo khóa ngoại, khóa chính,… nên được ưa chuộng và sử dụng rất phổ biến.

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

Mongodb là gì? Lệnh truy vấn dữ liệu trong MongoDBLệnh truy vấn dữ liệu trong MongoDB

MongoDB có các tính năng cơ bản như sau:

  • Truy vấn ad hoc
  • Nhân rộng
  • Cân bằng tải
  • Lưu trữ tệp
  • Tập hợp
  • Thực thi Javascript phía máy chủ
  • Giới hạn kích thước collection
  • Giao dịch

Hãy cùng Mắt Bão khám phá cụ thể về từng tính năng !

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 quy trình nhân rộng, tổng thể những tài liệu ghi và đọc triển khai 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 tài 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 NginxLighttpd.

Bạn hoàn toàn có thể tìm hiểu và khám phá NGINX trong bài viết :

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.

Bạn hoàn toàn có thể tìm hiểu thêm thêm JavaScript trong bài :

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ì?

MongoDB là gì? Nó cũng có nhiều ưu điểmMongoDB cũng có nhiều ưu điểm

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

  • Đầu tiên hoàn toàn có thể nhắc đến là tính linh động tàng trữ tài liệu theo những kích cỡ khác nhau, tài liệu dưới dạng hướng tài liệu JSON nên bạn hoàn toàn có thể chèn vào tự do bất kể 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.

  • MongoDBthuận tiện lan rộng ra mạng lưới hệ thống bằng cách thêm node vào cluster – cụm những node chứa tài liệu tiếp xúc 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 tài liệu “ _id ” luôn được tự động hóa đánh chỉ mục để đạt hiệu suất cao nhất .

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

MongoDB là gì? Phải mất 60 giây thì dữ liệu từ RAM mới đến được ổ cứngPhải mất 60 giây thì dữ liệu từ RAM mới đến được ổ cứngNgoài những ưu điểm tiêu biểu vượt trội, vẫn còn một số ít hạn chế khi thiết lập và sử dụng bạn cần chú ý quan tâm như sau :

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

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

MongoDB là gì? Cần xác định rõ những trường hợp để quyết định sử dụng MongoDBCần xác định rõ những trường hợp để quyết định sử dụng MongoDBMặc dù rất hữu dụng nhưng tùy theo trường hợp khác nhau mà bạn sẽ xem xét có nên sử dụng chương trình này hay không, đó là trường hợp :

  • Khi website của bạn có đặc thù Insert bởiMongoDBhoàn toàn có thể ghi với vận tốc cao và bảo mật thông tin bảo đảm an toàn .
  • Khi một số ít mạng lưới hệ thống Big Data có nhu yếu truy vấn nhanh vì chương trình này có hiệu suất truy vấn tài 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 tài liệu khác nhau, MongoDB có năng lực tìm kiếm thông tin tương quan nhanh .
  • Khi sever không có hệ quản trị cơ sở tài liệu thì đây là chương trình tương thích 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

MongoDB là gì? Cách lưu trữ theo hướng tài liệu trong MongoCách lưu trữ theo hướng tài liệu trong MongoDBỨng với những lệnh cơ bản của SQL thì chương trình này có những câu lệnh như sau :

CSDL

SQL

MongoDB

Tạo CSDL CREATE DATABASE test ; Use test ;
Tạo bảng CREATE TABLE students ( ten_cot – kieu_du_lieu ) ; db. createCollection ( ‘ students ’ ) ;
Tạo bản ghi INSERT INTO student ( ‘ name ’, ’ gender ’ )VALUES ( ‘ thanh ’, ’ male ’ ) ; db.students.insert ( { name : ’ thanh ’, gender : ’ male ’ } ) ;
Cập nhật UPDATE students SET name = ‘ thanh update ’ WHERE id = 1 ; db.students.update ( { _id : 1 }, { $ set : { name : ’ thanh update ’ } } ) ;
Xóa bản ghi DELETE FROM students Where id = 1 ; db.students.remove ( { _id : 1 } ) ;
Tìm kiếm all SELECT * FROM students ; db.students.find ( { } ) ;

Tìm kiếm

SELECT * FROM students WHERE name = ‘ thanh ’ ; db.students.find ( { name : ’ thanh ’ } ) ;

Trên đây là những thông tin chi tiết về chương trình cơ sở dữ liệu MongoDB. 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. Nếu muốn cài đặt MongoDB, hãy liên hệ với nhà cung cấp dịch vụ cho thuê máy chủ của bạn để được hỗ trợ tránh làm mất mát dữ liệu cá nhân/công ty.