Site icon LCDUNG

Mongodb là gì? Tại sao dùng MongoDB

1. MongoDB là gì?

 MongoDB là một mã nguồn mở và là một tập tài liệu dùng cơ chế No-SQL để truy vấn, nó được viết bởi ngôn ngữ C++. Chính vì được viết bởi C++ nên nó có khả năng tính toán với tốc độ cao chứ không giống như các hệ quản trị CSDL hiện nay.

MongoDB cũng có cấu trúc lưu trữ tương tự JSON, chính vì thế nó có hiệu suất cao, tương tác nhanh và khả năng mở rộng tốt, nó hoạt động trên khái niệm collection  ,document field. Tới đây thì có lẽ bạn sẽ thắc mắc collection, document, Field là gì?

Database là gì?

Database là một Ô chứa dữ liệu ở mức vật lý (physical), mỗi database sẽ có nhiều collection và được thiết lập lưu trữ ở một nơi trong máy chủ máy tính. Một máy chủ MongoDB thường có thể tạo nhiều cơ sở dữ liệu.

Collection là gì?

Collection trong MongoDB là nhóm các tài liệu (document), nó tương đương với một bảng (table) trong CSDL thông thường nên mỗi collection sẽ thuộc về một database duy nhất. Tuy nhiên nó có một sực khác biệt đó là nó không có ràng buộc Relationship như các hệ quản trị CSDL khác nên việc truy xuất rất nhanh, chính vì thế mỗi collection có thể chứa nhiều thể loại khác nhau không giống như table trong hệ quản trị mysql là các field cố định.

Document là gì?

Document trong MongoDB có cấu trúc tương tự như kiểu dữ liệu JSON, nghĩa là sẽ có các cặp (key => giá trị) nên nó có tính năng động rất lớn. Document ta có thể hiểu nó giống như các record dữ liệu trong MYSQL, tuy nhiên nó có sự khác biệt là các cặp (key => value) có thể không giống nhau ở mỗi document.

Để rõ hơn chúng ta sẽ so sánh MongoDB và một hệ quản trị CSDL khác nhé.

So sánh giữa RDBMS và MongoDB

RDBMS MongoDB
Database Database
Table Collection
Tuple/Row Document
column Field
Table Join Embedded Documents
Primary Key Primary Key (mặc định là _id)

Để rõ ràng hơn chúng ta sẽ tìm hiểu thông qua một ví dụ về cách lưu trữ trong MongoDB nhé.

{
   _id: ObjectId(46dsad64ad)
   title: 'title saving mongodb',
   description: 'MongoDB là no-sql nên các field không theo cấu trúc',
   author:  
      {
         user:'abc'
      }
},
{
   _id: ObjectId(d4sa6d74d6)
   title: 'title saving mongodb',
   description: 'MongoDB là no-sql nên các field không theo cấu trúc',
   users:  
      {
         user:'user2',
         message: 'comment',
         dateCreated: new Date(2014,1,2,2,1),
         like: 0
      },
      {
         user:'user3',
         message: 'comment',
         dateCreated: new Date(2015,1,2,2,1),
         like: 0
      }
}

Trong đó ta thấy key _id là do hệ thống tự tạo ra một field như vậy làm khóa chính. Đây là cấu trúc của một mẫu document trong MongoDB, như vậy khi có thêm comment thì ta sẽ thêm nó vào phần comment của tin.

2. Tại sao sử dụng MongoDB

MongoDB thật sự rất hot nhưng không phải lúc nào ta sử dụng nó cũng tốt, có những trường hợp không nên sử dụng và nên sử dụng, chi tiết thế nào thì chúng ta cùng thảo luận nhé.

Exit mobile version