以下是一些为什么应该开始使用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
<br>==================================================================================================================================================
# 如要安装特定版本的 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
==================================================================================================================================================
<br>[root@MongoDB-01 ~] # rpm -qa | grep mongodb<br>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
# 导入密钥<br>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"
}
}