Cơ bản về MongoDB
Quảng cáo

Tổng quan

MongoDB là một CSDL đa nền tảng, hoạt động trên các khái niệm Collection và Document, nó cung cấp hiệu suất, tính khả dụng cao và mở rộng dễ dàng.

Khái niệm Database

Database là một nơi chứa vật lý cho các Collection. Mỗi Database lấy tập hợp các file riêng của nó trên hệ thống file. Mỗi MongoDB Server có thể có nhiều cơ sở dữ liệu.

Khái niệm Collection

Collection là một nhóm các Document trong MongoDB. Nó tương đương như một bảng trong RDBMS. Do đó, một Collection tồn tại bên trong một cơ sở dữ liệu duy nhất. Các Collection không có ràng buộc Relationship như các hệ quản trị cơ sở dữ liệu 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. Các Document bên trong một Collection có thể có nhiều trường khác nhau. Đặc biệt, tất cả các Document trong một Collection là tương tự nhau hoặc với cùng mục đích liên quan.

Khái niệm Document

Một Document trong MongoDB, có cấu trúc tương tự như kiểu dữ liệu JSON, là một tập hợp các cặp key-value. Các Document có schema động, nghĩa là Document trong cùng một Collection không cần thiết phải có cùng một tập hợp các trường hoặc cấu trúc giống nhau, và các trường chung trong Document của một Collection có thể giữ các kiểu dữ liệu khác nhau.

RDBMS
MongoDB
Database
Database
Table
Collection
Tuple/Row
Document
column
Field
Table Join
Embedded Documents
Primary Key
Primary Key (Giá trị mặc định là _id được cung cấp bởi chính MongoDB)
Database Server và Client
Mysqld/Oracle
mongod
mysql/sqlplus
mongo

Cấu trúc Document đơn giản

Ví dụ dưới đây minh họa cấu trúc Document của một Blog site với một cặp key-value phân biệt bởi dấu phảy.

Ví dụ

{

    _id: ObjectId(7 df78ad8902c)

    title: 'MongoDB Overview',

    description: 'MongoDB is no sql database',

    by: 'tutorials point',

    url: 'http://www.vzn.vn',

    tags: ['mongodb', 'database', 'NoSQL'],

    likes: 100,

    comments: [

        {

            user: 'user1',

            message: 'My first comment',

            dateCreated: new Date(2011, 1, 20, 2, 15),

            like: 0

        },

        {

            user: 'user2',

            message: 'My second comments',

            dateCreated: new Date(2024, 1, 25, 7, 45),

            like: 5

        }

    ]

}

Ở đây, _id là một số thập lục phân 12 byte để đảm bảo tính duy nhất của mỗi Document. Bạn có thể cung cấp _id trong khi chèn vào Document. Nếu bạn không cung cấp, thì MongoDB sẽ cung cấp một id duy nhất cho mỗi Document. Trong 12 byte này, 4 byte đầu là cho Timestamp hiện tại, 3 byte tiếp theo cho ID của thiết bị, 2 byte tiếp là process id của MongoDB Server và 3 byte còn lại là giá trị có thể tăng.

Các lợi thế của MongoDB so với RDBMS

  • Ít Schema hơn: MongoDB là một cơ sở dữ liệu dựa trên Document, trong đó một Collection giữ các Document khác nhau. Số trường, nội dung và kích cỡ của Document này có thể khác với Document khác.
  • Cấu trúc của một đối tượng là rõ ràng.
  • Không có các Join phức tạp.
  • Khả năng truy vấn sâu hơn. MongoDB hỗ trợ các truy vấn động trên các Document bởi sử dụng một ngôn ngữ truy vấn dựa trên Document mà mạnh mẽ như SQL.
  • Tuning
  • MongoDB là dễ dàng để mở rộng.
  • Việc chuyển đổi/ánh xạ của các đối tượng ứng dụng đến các đối tượng cơ sở dữ liệu là không cần thiết.
  • Sử dụng bộ nhớ nội tại để lưu giữ phần công việc, giúp truy cập dữ liệu nhanh hơn.

Tại sao nên sử dụng MongoDB

  • Kho lưu định hướng Document: Dữ liệu được lưu trong các tài liệu kiểu JSON
  • Lập chỉ mục trên bất kỳ thuộc tính nào
  • Replication và tính khả dụng cao
  • Tự động Shard
  • Các truy vấn đa dạng
  • Cập nhật nhanh hơn
  • Sự hỗ trợ chuyên nghiệp bởi MongoDB

Nên sử dụng MongoDB ở đâu

  • Lượng dữ liệu lớn
  • Quản lý dữ liệu người dùng
  • Phân phối và quản lý nội dung (CM)
  • Data Hub

Bài viết này đã giúp ích cho bạn?

Advertisements