以下是一些为什么应该开始使用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核心组件及其用法包括:
1. 分布式数据平台
2. 快速迭代开发
3. 灵活的数据模型
4. 降低 TCO(总拥有成本)
5.集成功能集
MongoDB的版本号分为3位:主版本.次版本.修订号。
主版本(主要版本):当有重大更新时更新主版本号。例如支持WT引擎时主版本号从2升级到3;支持事务功能时从3升级到4;
次版本(快速发布):发布新功能时更新次版本号。以奇数次版本号作为开发版,给大家尝鲜用,但不应用于生产环境;以偶数次版本号作为稳定版,适合生产环境使用。这就是为什么大家在下载网站上只看到4.0,4.2,4.4而无法找到4.1,4.3,4.5的原因。
修订号(补丁版本):每隔一定时间发布一次,包含近期内所有的bugfix。修订号不做任何功能上的更新,只用于发布bugfix。所以只要主/次版本号一致时,更新修订号可以完全向前兼容。
主/次版本基本上保持一年一次的更新频率,修订号不定期发布。
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
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
# 创建/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
[root@MongoDB-01 ~]# yum install -y mongodb-org
==================================================================================================================================================
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
[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
[root@MongoDB-01 ~]# grep mongo /etc/passwd
mongod❌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 -
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
root@ubuntu-1804:~# apt-get install -y mongodb-org
=======================================================================================================================================================================
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
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:~# apt-get install gnupg
root@ubuntu-1804:~# wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
OK
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
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
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:~# 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"
}
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章