MongoDB là gì vậy? Khi Nào Nên Dùng MongoDB

MongoDB là gì vậy? Khi Nào Nên Dùng MongoDB

Bài viết này sẽ giới thiệu về MongoDB cũng như các ưu điểm của nó. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về [email protected] hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php.

MongoDB là gì ?

MongoDB (chữ mongo được lấy từ “humongous” trong tiếng Anh, nghĩa là “khổng lồ”), là một NoSQL database. Khác với MySQL hay các loại SQL databse khác chạy theo mô hình database – table – row với số dòng – cột nhất định, schema phức tạp, và phải sử dụng nhiều JOIN khi query. MongoDB chạy theo mô hình database – collection – document, thay thế mô hình cơ sở dữ liệu dùng table truyền thống bằng các document với định dạng JSON với cấu trúc linh hoạt hơn (MongoDB gọi là BSON).

Bạn đang đọc: MongoDB là gì vậy? Khi Nào Nên Dùng MongoDB

Với nhiều ưu điểm như hỗ trợ đa nền tảng (Windows, Linux), hiệu năng cao, dễ dàng mở rộng theo chiều ngang.

Bạn đang đọc: MongoDB là gì vậy? Khi Nào Nên Dùng MongoDB

Hiện tại, MongoDB đang được công ty MongoDB Inc tăng trưởng và có 2 phiên bản như sau :

MongoDB Community Server

Phiên bản MongoDB Community là phiên bản miễn phí cho cộng đồng, hỗ trợ 3 loại hệ điều hành là Linux, Windows và OS X.Tuy vậy, và do dính Một vài vụ lùm xùm về license nên Fedora sẽ loại MongoDB ra khỏi phiên bản RedHat 8 sắp ra mắt của mình. Nhưng ta vẫn có thể add repo bằng tay và tải về chạy bình thường.

MongoDB Enterprise Server

MongoDB Enterprise Server là phiên bản thương mại của MongoDB, coi thêm tại đây.

Để liên tục tìm hiểu và khám phá MongoDB thì ta sẽ khám phá Một vài ít khái niệm cơ bản của nó .

Các khái niệm cơ bản trong MongoDB

Database

Database chính là tập chứa các collection trong MongoDB. Mỗi database sẽ có một tập file riêng của mình trên file system của mạng lưới hệ thống. Một MongoDB server thường chứa nhiều database trên đó .

Collection

Tương tự như Table trong MySQL, Collection là một tập chứa các MongoDB Document. Một điểm khác so với các RDBMS khác đó chính là Collection không bắt buộc một schema cố định và thắt chặt nào cả. Các document trong cùng một collection hoàn toàn có thể có nhiều field khác nhau. Nhưng thường thì các document trong một collection sẽ có Một vài ít field chính tương đương nhau và có tương quan với nhau .

Document

Document là một tập tài liệu theo dạng key-value, mỗi key sẽ tương ứng với một value. Các document khá linh động về schema, như đã nói ở trên, các document trong cùng một collection không nhất thiết phải có các field hoặc cấu trúc giống nhau. Data trong cùng một field cũng hoàn toàn có thể có nhiều kiểu tài liệu khác nhau . Thí dụ : field name của document này hoàn toàn có thể là string, nhưng ở document khác hoàn toàn có thể có kiểu là array, và dù 2 document đó cùng nằm chung 1 collection . ==> Túm lại là, hoàn toàn có thể tạm coi collection như table, document như row cho dễ tưởng tượng. Nhưng quy mô collection, document linh động hơn so với table – row do có ít schema hơn . Đối với những ai đã xài MySQL mới chuyển qua làm quen MongoDB, các bạn hoàn toàn có thể xem thêm bảng so sánh sau để dễ hiểu hơn :RDBMSMongoDB

Database Database

Table Collection

Tuple/Row Document

Column Field

Table Join Embedded Documents

Primary Key Primary Key (MongoDB tự tạo Primary key là “_id“)

Database Server và Client

Mysqld/Oracle mongod (server)

mysql/sqlplus mongo (client)

JSON

Các document của MongoDB sử dụng format JSON ( JavaScript Object Notation ), đây là một chuẩn tàng trữ, trao đổi tài liệu đơn thuần và gọn nhẹ. Với ưu điểm dễ đọc, với dễ hiểu, đa số các ngôn từ lập trình thông dụng lúc bấy giờ đều tương hỗ JSON như : c, với C + +, C #, Java, JavaScript, Perl, Python, … . Dữ liêu trong JSON được tàng trữ dưới dạng key / value. Một key sẽ tương ứng với 1 value. Value ở đây hoàn toàn có thể là một mảng, một chuỗi, Một vài ít int, double, mảng hoặc object … Các bạn hoàn toàn có thể tìm hiểu và khám phá kỹ hơn về JSON tại đây Dưới đây là một document cơ bản với format JSON, các bạn sẽ thấy nó khá là dễ đọc :

{ “ _id ” : ObjectId ( “ 58 c59c8f99d4ee0af9e5ccfc ” ) , “ title ” : “ Iron Man ” , “ year ” : 2008 , “ imdbId ” : “ tt0371746 ” , “ mpaaRating ” : “ PG-13 ” , “ genre ” : “ kích hoạt, Adventure, Sci-Fi ” , “ viewerRating ” : 7.9 , “ viewerVotes ” : 615059 ,

“runtime” : 126,

“ director ” : “ Jon Favreau ” , “ cast ” : [ “ Robert Downey Jr. ” , “ Terrence Howard ” , “ Jeff Bridges ” , “ Gwyneth Paltrow ” ] , “ plot ” : “ After being held captive in an Afghan cave, an industrialist creates a unique weaponized suit of armor to fight evil. ” , “ language ” : “ English, Persian, Urdu, Arabic, với Hungarian ” } Như Thí dụ ở trên, cứ mỗi key ( phần bên trái dấu hai chấm ) sẽ ứng với một value ( phần bên phải dấu hai chấm ), và phần value hoàn toàn có thể có nhiều kiểu tài liệu khác nhau ( string, int, array … )

Một vài ưu điểm của MongoDB

MongoDB

Sau đây là 1 số ít ưu điểm của MongoDB :

Ít schema hơn: MongoDB là một Document Databse, các document trong cùng một collection không nhất thiết phải giống nhau về số field, loại dữ liệu như trong SQL.Cấu trúc của một Document rất rõ ràng, dễ đọc và dể hiểu.Không cần sử dụng đến các lệnh JOIN phức tạp.Khả năng mở rộng dữ liệu dễ dàng, không cần phải quá bận tâm về kiểu dữ liệu, khóa chính, khóa ngoại như SQL.Lưu dữ liệu trên RAM, giúp truy xuất dữ liệu nhanh hơn.Dễ dàng Scale Out (Horizontally Scale).

Khi nào nên dùng MongoDB

Vậy khi nào ta nên dùng MongoDB :

Sử dụng document để lưu trữ dữ liệu, dễ dàng thêm bớt, mở rộng dữ liệu tùy ý.Ứng dụng có tính chất Insert nhiều (write-intensive)Cần cơ chế Replication và High Availabity.Cần cơ chế Sharding.

Một vài use case thông dụng của MongoDB là Hệ thống quản trị nội dung số, Các mạng lưới hệ thống nghiên cứu và phân tích tài liệu lớn, Quản lý hạng mục các mẫu sản phẩm trong thương mại điên tử, các ứng dụng social …

Khi nào không nên dùng MongoDB

Còn khi nào thì không nên dùng MongoDB ?

Hệ thống cần xử lý nhiều transaction như các giao dịch mua bán, chuyển tiền, ngân hàng. Đối với các trường hợp này thì SQL phù hợp hơn hẳn!Cần sử dụng đến các lệnh JOIN.

Related

No related posts .

Was this article helpful ?

7

4

Giới thiệu: Quang Sơn

Quang Sơn là giám đốc hocdauthau.com - Kênh thông tin học đấu thầu, kiến thức tổng hợp, công nghệ, đời sống.

0 Shares
Share
Tweet
Pin