MongoDB là một hệ thống cơ sở dữ liệu NoSQL mã nguồn mở được viết bằng C ++ cung cấp khả năng mở rộng, hiệu suất/tính sẵn sàng cao. Hệ thống cơ sở dữ liệu NoSQL thường được gọi là Cơ sở dữ liệu hướng tài liệu.
MongoDB được bắt đầu phát triển vào đầu năm 2007 khi công ty 10gen đang phát triển một nền tảng tương tự dịch vụ Azure của Microsoft. Công ty 10gen là một công ty phần mềm có trụ sở tại New York, nay được đổi tên thành MongoDB Inc. Việc phát triển ban đầu tập trung vào xây dựng PaaS (một nền tảng dịch vụ) nhưng sau đó vào năm 2009, MongoDB đã xuất hiện trên thị trường như một dự án mã nguồn mở máy chủ cơ sở dữ liệu và được duy trì bởi chính tổ chức này.
Trong MongoDB, dữ liệu được lưu trữ trong các tài liệu giống JSON, linh hoạt, nơi các field có thể thay đổi từ document này sang document khác. Nó không yêu cầu một lược đồ xác định trước và cấu trúc dữ liệu có thể được thay đổi theo thời gian. Trường hợp sử dụng phổ biến của MongoDB là lưu trữ và quản lý các collection tài liệu dạng text có kích thước dữ liệu lớn như tài liệu văn bản, thư email, tài liệu XML và nhiều tài liệu khác.
Bảng so sánh các thuật ngữ giữa CSDL quan hệ và MongoDB
Bước 1: Import khóa GPG công khai MongoDB
sudo apt update
sudo apt install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
Bước 2: Thêm repo MongoDB 4.4 APT vào Ubuntu 20.04 | 18.04 | 16.04
Ubuntu 20.04:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
Ubuntu 18.04:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
Ubuntu 16.04:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
Bước 3: Cài đặt MongoDB 4.4 trên Ubuntu 20.04 | 18.04 | 16.04
$ sudo apt update
Hit:1 http://repo.mysql.com/apt/ubuntu bionic InRelease
Hit:2 http://mirror.hetzner.de/ubuntu/packages focal InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:4 http://mirror.hetzner.de/ubuntu/packages focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:6 http://mirror.hetzner.de/ubuntu/packages focal-backports InRelease
Hit:7 http://mirror.hetzner.de/ubuntu/packages focal-security InRelease
Hit:8 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Ign:9 https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 InRelease
Hit:10 http://security.ubuntu.com/ubuntu focal-security InRelease
Get:11 https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 Release [5,377 B]
Get:12 https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 Release.gpg [801 B]
Get:13 https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4/multiverse amd64 Packages [5,058 B]
Get:14 https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4/multiverse arm64 Packages [3,962 B]
Fetched 15.2 kB in 2s (6,472 B/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
sudo apt-get install -y mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools
Tên dịch vụ là mongod, bạn có thể khởi động ứng dụng bằng cách chạy:
sudo systemctl enable --now mongod
Kiểm tra trạng thái bằng cách sử dụng:
$ systemctl status mongod
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-10-17 05:57:30 UTC; 32s ago
Docs: https://docs.mongodb.org/manual
Main PID: 20493 (mongod)
CGroup: /system.slice/mongod.service
└─20493 /usr/bin/mongod --config /etc/mongod.conf
Oct 17 05:57:30 ubuntu18 systemd[1]: Started MongoDB Database Server.
Dịch vụ sẽ được lắng nghe trên cổng 27017
$ netstat -tunelp | grep 27017
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 112 53728 -
Tệp cấu hình chính của MongoDB là /etc/mongod.conf. Bạn có thể điều chỉnh cài đặt theo ý thích của mình, nhưng hãy nhớ khởi động lại dịch vụ mongod bất cứ khi nào bạn thực hiện thay đổi.
Kiểm tra kết nối:
$ mongo --eval 'db.runCommand({ connectionStatus: 1 })'
MongoDB shell version v4.4.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("615620f1-c987-4a1c-b9c2-c16cf962065f") }
MongoDB server version: 4.4.1
{
"authInfo" : {
"authenticatedUsers" : [ ],
"authenticatedUserRoles" : [ ]
},
"ok" : 1
}
Bạn có thể xác nhận rằng mọi thứ đang hoạt động tốt thông qua respone "ok": 1 của tập lệnh. Bạn cũng có thể thử tạo cơ sở dữ liệu thử nghiệm và chèn một số dữ liệu giả.
# mongo
...
To enable free monitoring, run the following command:
db.enableFreeMonitoring()
---
> use test_db # This will create database called test_db
switched to db test_db
> db # Show current database
test_db
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
> db.files.insert({"name":"rap"}) # Insert data to db
WriteResult({ "nInserted" : 1 })
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
test_db 0.000GB
> db.dropDatabase() # Drop our test db
> exit
bye