以下是一些為什麼應該開始使用MongoDB的原因
資料庫 | MySQL | MongoDB |
---|---|---|
資料庫模型 | 關係型 | 非關係型 |
儲存方式 | 不同引擎有不同的儲存方式 | 以類JSON的檔案的格式儲存 |
查詢語句 | SQL語句 | MongoDB查詢方式(類似JavaScript的函數) |
資料處理方式 | 不同引擎有自己的特點 | 基於記憶體,將熱資料存放在實體記憶體中,從而達到高速讀寫 |
成熟度 | 成熟度高 | 新興資料庫,成熟度較低 |
廣泛度 | 開源資料庫,市場份額不斷增長 | NoSQL資料庫中,比較完善且開源,使用人數在不斷增長 |
事務性 | 支援事務操作 | 僅支援單檔案事務操作,弱一致性 |
佔用空間 | 佔用空間小 | 佔用空間大 |
join操作 | MySQL支援join | MongoDB沒有join |
MySQL與 MongoDB 對應的術語:
SQL術語/概念 | MongoDB術語/概念 | 解釋/說明 |
---|---|---|
database | database | 資料庫 |
table | collection | 資料庫表/集合 |
row | document | 資料記錄行/檔案 |
column | field | 資料欄位/域 |
index | index | 索引 |
table joins | 表連線,MongoDB不支援 | |
primary key | primary key | 主鍵,MongoDB自動將_id欄位設定為主鍵 |
MongoDB核心元件及其用法包括:
MongoDB的版本號分為3位:主版本.次版本.修訂號。
主/次版本基本上保持一年一次的更新頻率,修訂號不定期釋出。
MongoDB官方下載網站:
[root@MongoDB-01 ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [root@MongoDB-01 ~]# uname -r 3.10.0-1160.83.1.el7.x86_64 [root@MongoDB-01 ~]# systemctl stop firewalld [root@MongoDB-01 ~]# sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux [root@MongoDB-01 ~]# setenforce 0 [root@MongoDB-01 ~]# ntpdate 0.centos.pool.ntp.org [root@MongoDB-01 ~]# yum install net-tools vim wget curl -y
建立/etc/yum.repos.d/mongodb-org-5.0.repo檔案 [mongodb-org-5.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc # 安裝最新穩定版本的 MongoDB # yum install -y mongodb-org ================================================================================================================================================== # 如要安裝特定版本的 MongoDB,請單獨指定每個元件包並將版本號附加到包名稱,例如 yum install -y mongodb-org-5.0.0 mongodb-org-database-5.0.0 mongodb-org-server-5.0.0 mongodb-org-shell-5.0.0 mongodb-org-mongos-5.0.0 mongodb-org-tools-5.0.0 # yum當更新版本可用時升級軟體包。為防止意外升級,請固定包。要固定包,請將以下exclude指令新增到您的/etc/yum.conf檔案中 exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools ==================================================================================================================================================
# 建立/etc/yum.repos.d/mongodb-org-6.0.repo檔案 [root@MongoDB-01 ~]# cat /etc/yum.repos.d/mongodb-org-6.0.repo [mongodb-org-6.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc # 安裝最新穩定版本的 MongoDB [root@MongoDB-01 ~]# yum install -y mongodb-org
================================================================================================================================================== # 如要安裝特定版本的 MongoDB,請單獨指定每個元件包並將版本號附加到包名稱,例如 yum install -y mongodb-org-6.0.0 mongodb-org-database-6.0.0 mongodb-org-server-6.0.0 mongodb-org-mongos-6.0.0 mongodb-org-tools-6.0.0 # yum當更新版本可用時升級軟體包。為防止意外升級,請固定包。要固定包,請將以下exclude指令新增到您的/etc/yum.conf檔案中 exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-mongosh,mongodb-org-mongos,mongodb-org-tools ==================================================================================================================================================
[root@MongoDB-01 ~]# rpm -qa | grep mongodb
mongodb-mongosh-1.8.0-1.el8.x86_64 mongodb-org-database-tools-extra-6.0.5-1.el7.x86_64 mongodb-org-mongos-6.0.5-1.el7.x86_64 mongodb-org-database-6.0.5-1.el7.x86_64 mongodb-database-tools-100.7.0-1.x86_64 mongodb-org-tools-6.0.5-1.el7.x86_64 mongodb-org-server-6.0.5-1.el7.x86_64 mongodb-org-6.0.5-1.el7.x86_64 [root@MongoDB-01 ~]# mongod --version db version v6.0.5 Build Info: { "version": "6.0.5", "gitVersion": "c9a99c120371d4d4c52cbb15dac34a36ce8d3b1d", "openSSLVersion": "OpenSSL 1.0.1e-fips 11 Feb 2013", "modules": [], "allocator": "tcmalloc", "environment": { "distmod": "rhel70", "distarch": "x86_64", "target_arch": "x86_64" } } # 預設組態檔 [root@MongoDB-01 ~]# grep -Ev "^$|#" /etc/mongod.conf systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log storage: dbPath: /var/lib/mongo journal: enabled: true processManagement: timeZoneInfo: /usr/share/zoneinfo net: port: 27017 # 確保執行MongoDB的使用者有權存取 [root@MongoDB-01 ~]# grep mongo /etc/passwd mongod:x:997:996:mongod:/var/lib/mongo:/bin/fals [root@MongoDB-01 ~]# ls -ld /var/log/mongodb/mongod.log /var/lib/mongo drwxr-xr-x 4 mongod mongod 4096 Mar 23 10:24 /var/lib/mongo -rw-r----- 1 mongod mongod 20102 Mar 23 10:24 /var/log/mongodb/mongod.log [root@MongoDB-01 ~]# systemctl start mongod [root@MongoDB-01 ~]# ps aux | grep mongod mongod 1225 14.8 2.3 2659472 93396 ? Ssl 11:54 0:00 /usr/bin/mongod -f /etc/mongod.conf root 1269 0.0 0.0 112808 968 pts/0 S+ 11:54 0:00 grep --color=auto mongod [root@MongoDB-01 ~]# netstat -ntpl | grep mongod tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 1225/mongod [root@MongoDB-01 ~]# systemctl enable mongod
[root@MongoDB-01 ~]# systemctl stop mongod [root@MongoDB-01 ~]# ps aux | grep mongod root 2129 0.0 0.0 112808 968 pts/0 S+ 12:11 0:00 grep --color=auto mongod [root@MongoDB-01 ~]# yum erase $(rpm -qa | grep mongodb-org) [root@MongoDB-01 ~]# rm -r /var/log/mongodb [root@MongoDB-01 ~]# rm -r /var/lib/mongo
root@ubuntu-1804:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.6 LTS Release: 18.04 Codename: bionic root@ubuntu-1804:~# root@ubuntu-1804:~# uname -r 4.15.0-163-generic root@ubuntu-1804:~# ufw disable Firewall stopped and disabled on system startup root@ubuntu-1804:~# ufw status Status: inactive
root@ubuntu-1804:~# apt list --installed | grep mongo
# 匯入金鑰
root@ubuntu-1804:~# apt-get install gnupg root@ubuntu-1804:~# wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | apt-key add - # 建立/etc/apt/sources.list.d/mongodb-org-5.0.list檔案 root@ubuntu-1804:~# echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list root@ubuntu-1804:~# apt-get update # 安裝最新穩定版本的 MongoDB root@ubuntu-1804:~# apt-get install -y mongodb-org ======================================================================================================================================================================= # 如要安裝特定版本的 MongoDB,請單獨指定每個元件包並將版本號附加到包名稱,例如 sudo apt-get install -y mongodb-org=5.0.0 mongodb-org-database=5.0.0 mongodb-org-server=5.0.0 mongodb-org-shell=5.0.0 mongodb-org-mongos=5.0.0 mongodb-org-tools=5.0.0 # apt-get當更新版本可用時升級軟體包。為防止意外升級,請固定包。 root@ubuntu-1804:~# echo "mongodb-org hold" | sudo dpkg --set-selections root@ubuntu-1804:~# echo "mongodb-org-database hold" | sudo dpkg --set-selections root@ubuntu-1804:~# echo "mongodb-org-server hold" | sudo dpkg --set-selections root@ubuntu-1804:~# echo "mongodb-org-shell hold" | sudo dpkg --set-selections root@ubuntu-1804:~# echo "mongodb-org-mongos hold" | sudo dpkg --set-selections root@ubuntu-1804:~# echo "mongodb-org-tools hold" | sudo dpkg --set-selections =======================================================================================================================================================================
# 匯入金鑰 root@ubuntu-1804:~# apt-get install gnupg root@ubuntu-1804:~# wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - OK # 建立/etc/apt/sources.list.d/mongodb-org-5.0.list檔案 root@ubuntu-1804:~# echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list root@ubuntu-1804:~# apt-get update # 安裝最新穩定版的 MongoDB root@ubuntu-1804:~# apt-get install -y mongodb-org ======================================================================================================================================================================= # 如要安裝特定版本的 MongoDB,請單獨指定每個元件包並將版本號附加到包名稱,例如 root@ubuntu-1804:~# apt-get install -y mongodb-org=6.0.0 mongodb-org-database=6.0.0 mongodb-org-server=6.0.0 mongodb-org-mongos=6.0.4 mongodb-org-tools=6.0.0 # apt-get當更新版本可用時升級軟體包。為防止意外升級,請固定包。 root@ubuntu-1804:~# echo "mongodb-org hold" | sudo dpkg --set-selections root@ubuntu-1804:~# echo "mongodb-org-database hold" | sudo dpkg --set-selections root@ubuntu-1804:~# echo "mongodb-org-server hold" | sudo dpkg --set-selections root@ubuntu-1804:~# echo "mongodb-org-shell hold" | sudo dpkg --set-selections root@ubuntu-1804:~# echo "mongodb-org-mongos hold" | sudo dpkg --set-selections root@ubuntu-1804:~# echo "mongodb-org-tools hold" | sudo dpkg --set-selections ======================================================================================================================================================================= root@ubuntu-1804:~# mongod --version db version v6.0.5 Build Info: { "version": "6.0.5", "gitVersion": "c9a99c120371d4d4c52cbb15dac34a36ce8d3b1d", "openSSLVersion": "OpenSSL 1.1.1 11 Sep 2018", "modules": [], "allocator": "tcmalloc", "environment": { "distmod": "ubuntu1804", "distarch": "x86_64", "target_arch": "x86_64" } }