Hướng dẫn tổng quan về mongodb
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. Show
Định nghĩa thêm về MongoDBMongoDB 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. 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à thuật ngữ không xa lạ về cơ sở dữ liệu trên máy tínhVì thế, nó có thể dùng để lưu trữ dữ liệu có cấu trúc phức tạp và đa dạng. Dữ liệu được gọi là Big Data. Đặc biệt, chương trình này lưu trữ dữ 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ì?NoSQL và MongoDB có mối quan hệ với nhauTrong 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ì?Lệnh truy vấn dữ liệu trong MongoDBMongoDB có các tính năng cơ bản như sau:
Hãy cùng Mắt Bão tìm hiểu chi tiết về từng tính năng! Truy vấn ad hocTruy 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 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ảiBằ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ệpVớ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. Bạn có thể tìm hiểu 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 có thể tham khảo thêm JavaScript trong bài: Giới hạn kích thước collectionMongoDB 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ịchMongoDB 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 cũng có nhiều ưu điểmSử dụng MongoDB mang lại rất nhiều lợi ích đến người dùng.
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ứngNgoà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:
Khi nào nên dùng MongoDB?Cầ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 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:
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 MongoDBCá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: 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. |