Giới thiệu MongoDB

MongoDB là một cơ sở dữ liệu tài liệu mã nguồn mở và là một trong những cơ sở dữ liệu NoSQL hàng đầu. MongoDB được viết bằng C++.

Hướng dẫn này sẽ cung cấp cho bạn các kiến thức về MongoDB để tạo và triển khai cơ sở dữ liệu có hiệu suất cao và có khả năng mở rộng cao.

Đối tượng độc giả

Hướng dẫn này được thiết kế cho các chuyên gia phần mềm, những người sẵn sàng tìm hiểu cơ sở dữ liệu MongoDB theo các bước đơn giản và dễ dàng.

Nó sẽ làm sáng tỏ các khái niệm MongoDB và sau khi hoàn thành hướng dẫn này, bạn sẽ nắm vững các khái niệm, từ đó bạn có thể tự mình đạt trình độ chuyên môn cao hơn.

Điều kiện tiên quyết

Trước khi tiếp tục với hướng dẫn này, bạn nên có kiến ​​thức cơ bản về cơ sở dữ liệu. Vì chúng tôi sẽ xây dựng cơ sở dữ liệu hiệu suất cao, vì vậy sẽ rất tốt nếu bạn đã có hiểu biết về các khái niệm cơ bản của cơ sở dữ liệu (RDBMS).

Tổng quan về MongoDB

MongoDB là một cơ sở dữ liệu đa nền tảng, định hướng tài liệu, hiệu suất cao, tính sẵn sàng cao và khả năng mở rộng dễ dàng. MongoDB hoạt động trên khái niệm về bộ sưu tập (collection) và tài liệu (document).

Cơ sở dữ liệu

Cơ sở dữ liệu (database) là một thùng chứa vật lý cho các bộ sưu tập. Mỗi cơ sở dữ liệu có các file riêng trên hệ thống file. Một máy chủ MongoDB thường có nhiều cơ sở dữ liệu.

Bộ sưu tập

Bộ sưu tập (collection) là một nhóm các tài liệu. Nó tương đương với bảng trong RDBMS. Một bộ sưu tập tồn tại trong một cơ sở dữ liệu.

Bộ sưu tập không thực thi một lược đồ. Tài liệu trong một bộ sưu tập có thể có các lĩnh vực khác nhau. Thông thường, tất cả các tài liệu trong một bộ sưu tập đều có mục đích tương tự hoặc liên quan.

Tài liệu (document)

Tài liệu là một tập hợp các cặp khóa-giá trị. Tài liệu có lược đồ động.

Lược đồ động có nghĩa là các tài liệu trong cùng một bộ sưu tập không cần phải có cùng một tập hợp các trường hoặc cấu trúc và các trường chung trong các tài liệu của bộ sưu tập có thể chứa các loại dữ liệu khác nhau.

Bảng sau đây cho thấy mối quan hệ của thuật ngữ RDBMS với MongoDB.

RDBMS MongoDB
Database Database
Table Collection
Row Document
Column Field
Table Join Embedded Documents
Primary Key Primary Key

Tài liệu mẫu

Ví dụ sau đây cho thấy cấu trúc tài liệu của một đơn hàng, nó chỉ đơn giản là những cặp khóa-giá trị được phân tách bằng dấu phẩy.

{
    "_id" : ObjectId("5c8cdfaaccba3f03e810c602"),
    "OrderNumber" : "19L5FOVF",
    "OrderDate" : ISODate("2019-03-16T11:36:10.284Z"),
    "OrderStatus" : 1,
	"Client": {
		"_id" : ObjectId("5bb1df391f86f503e81803b8"),
		"Name" : "Comdy",
		"Email" : "test@gmail.com",
		"PhoneNumber" : "0123456789",
		"Address" : "12 Đinh Tiên Hoàng, Quận Bình Thạnh, Tp.HCM",
	},    
    "SubTotal" : "3756000.0",
    "VoucherCode" : null,
    "DiscountAmount" : "0.0",
    "TotalAmount" : "3756000.0",
    "Items" : [
		{
			"_id" : ObjectId("5ce256969fcd5c3344e06b38"),
			"ProductId" : ObjectId("5b82451e69d6b003e8d0efe4"),
			"ProductName" : "Đầm Nữ Xếp Ly Eo 2 Túi M557 - Rêu (Free Size)",
			"Properties" : "Màu Sắc: Đỏ, Size: XL",
			"Quantity" : 4,
			"Price" : "80000.0",
			"TotalAmount" : "320000.0"
		},
		{
			"_id" : ObjectId("5ce4b41f6e4a2409d4eb8a27"),
			"ProductId" : ObjectId("5ce3be7a34c43f3ed8013849"),
			"ProductName" : "Đầm Vintage 16F2",
			"Properties" : "Size: L",
			"Quantity" : 3,
			"Price" : "110000.0",
			"TotalAmount" : "330000.0"
		}
	],
    "CreatedUserId" : ObjectId("5b7c045edd4b8603e8fd6aff"),
    "CreatedDate" : ISODate("2019-07-08T00:31:43.476Z"),
    "UpdatedUserId" : ObjectId("5b7c045edd4b8603e8fd6aff"),
    "UpdatedDate" : ISODate("2019-07-08T00:31:43.476Z")
}

Ưu điểm của MongoDB

Bất kỳ cơ sở dữ liệu quan hệ nào cũng có thiết kế lược đồ điển hình hiển thị số lượng bảng và mối quan hệ giữa các bảng này. Trong khi ở MongoDB, không có khái niệm về mối quan hệ.

Ưu điểm của MongoDB so với RDBMS

  • Lược đồ ít hơn - MongoDB là một cơ sở dữ liệu tài liệu trong đó một bộ sưu tập chứa các tài liệu khác nhau. Số lượng trường, nội dung và kích thước của tài liệu có thể khác nhau giữa các tài liệu.
  • Cấu trúc của một đối tượng là rõ ràng.
  • Không join phức tạp.
  • Khả năng truy vấn sâu. MongoDB hỗ trợ các truy vấn động trên các tài liệu bằng ngôn ngữ truy vấn dựa trên tài liệu mạnh mẽ như SQL.
  • Hiệu năng cao.
  • Dễ mở rộng quy mô - MongoDB dễ dàng mở rộng quy mô.
  • Không cần phải chuyển đổi / ánh xạ các đối tượng của ứng dụng thành các đối tượng cơ sở dữ liệu.
  • Sử dụng bộ nhớ trong để lưu trữ bộ làm việc, cho phép truy cập dữ liệu nhanh hơn.

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

  • Lưu trữ hướng tài liệu - Dữ liệu được lưu trữ dưới dạng tài liệu kiểu JSON.
  • Chỉ mục trên bất kỳ thuộc tính nào.
  • Khả năng mở rộng và sẵn sàng cao.
  • Tự động Sharding (tương tự partial).
  • Truy vấn phong phú.
  • Cập nhật nhanh tại chỗ.
  • Hỗ trợ chuyên nghiệp bởi MongoDB.

Sử dụng MongoDB ở đâu?

  • Dữ liệu lớn.
  • Quản lý và phân phối nội dung.
  • Cơ sở hạ tầng di động và xã hội.
  • Quản lý dữ liệu người dùng.
  • Trung tâm dữ liệu.

Cài đặt MongoDB

Phần này sẽ hướng dẫn bạn cài đặt MongoDB và những công cụ tiện ích trên Windows và Ubuntu.

Cài đặt MongoDB trên Windows

Để cài đặt MongoDB trên Windows, trước tiên bạn hãy tải xuống bản phát hành MongoDB mới nhất từ https://www.mongodb.com/download-center/community.

Bạn chọn phiên bản mới nhất của MongoDB, bạn chọn phiên bản hệ điều hành của bạn, phần package bạn chọn MSI rồi nhấn nút Download.

Sau khi tải MongoDB về máy, bạn chạy file cài đặt và thực hiện vài bước trong trình cài đặt của MongoDB là xong. Cài phần mềm trên Windows phần lớn lúc nào cũng đơn giản phải không nào.

Sau khi cài đặt xong, bạn có thể truy cập MongoDB bằng dấu nhắc lệnh tại thư mục C:\Program Files\MongoDB\Server\[version]\bin như sau:

C:\Users\XYZ>cd C:\Program Files\MongoDB\Server\4.2\bin

Bây giờ bạn có thể để chạy MongoDB bằng lệnh sau:

C:\Program Files\MongoDB\Server\4.2\bin>mongo.exe

Đây là kết quả trả về:

MongoDB shell version v4.2.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("4260beda-f662-4cbe-9bc7-5c1f2242663c") }
MongoDB server version: 4.2.1
>

Điều này cho thấy MongoDB đã được cài đặt thành công.

Ngoài ra, để tiện cho việc thao tác, truy vấn trong MongoDB thì bạn nên cài đặt phần mềm Robo 3T tại địa chỉ: https://robomongo.org/download.

Phần mềm này tương tự như SQL Server Management, nó giúp bạn thao tác với database bằng giao diện đồ họa và có nơi để bạn thực thi câu truy vấn.

Cài đặt MongoDB trên Ubuntu

Chạy lệnh sau để nhập khóa GPG công khai cho MongoDB:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

Tạo file /etc/apt/source.list.d/mongodb.list bằng lệnh sau:

echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' 
   | sudo tee /etc/apt/sources.list.d/mongodb.list

Bây giờ chạy lệnh sau để cập nhật kho lưu trữ:

sudo apt-get update

Tiếp theo cài đặt MongoDB bằng cách sử dụng lệnh sau:

apt-get install mongodb-10gen = 4.2.5

Trong phần cài đặt ở trên, 4.2.5 là phiên bản MongoDB đang được phát hành. Bạn nên chọn và cài đặt phiên bản mới nhất của MongoDB. Bây giờ MongoDB đã được cài đặt thành công.

Chạy MongoDB

sudo service mongodb start

Dừng MongoDB

sudo service mongodb stop

Khởi động lại MongoDB

sudo service mongodb restart

Sử dụng MongoDB

mongo
MongoDB