一、mongodb的介绍
1.什么是mongodb
- mongodb 是一个功能最丰富的NoSQL非关系数据库。由 C++ 语言编写。
- mongodb 本身提供S端存储数据,即server;也提供C端操作处理(如查询等)数据,即client。
2. SQL和NoSQL的主要区别
- 在SQL中层级关系: 数据库>表>数据
- 而在NoSQL中则是: 数据库>集合>文档
(1)数据之间无关联性
- SQL中如何需要增加外部关联数据的话,规范化做法是在原表中增加一个外键,关联外部数据表。
- NoSQL则可以把外部数据直接放到原数据集中,以提高查询效率。缺点也比较明显,对关联数据做更新时会比较麻烦。
- SQL中在一个表中的每条数据的字段是固定的。而NoSQL中的一个集合(表)中的每条文档(数据)的key(字段)可以是互不相同的。
扩展阅读:
(2)mongodb作为非关系型数据库相较于关系型数据库的优势
易扩展: NoSQL数据库种类繁多, 但是一个共同的特点都是去掉关系数据库的关系型特性。 数据之间无关系, 这样就非常容易扩展
大数据量,高性能: NoSQL数据库都具有非常高的读写性能, 尤其在大数据量下表现优秀。 这得益于它的非关系性,数据库的结构简单
灵活的数据模型: NoSQL无需事先为要存储的数据建立字段, 随时可以存储自定义的数据格式。 而在关系数据库中, 增删字段是一件非常麻烦的事情。 如果是非常大数据量的表, 增加字段简直就是一个噩梦
二、Mongodb的安装
1. Linux安装mongodb
以ubuntu18.04为例
- mongodb具有两种安装方式:命令安装 或 源码安装
(1)命令安装
- 在ubuntu中使用apt-get工具安装
sudo apt-get install -y mongodb-org
①、无法找到软件包 mongodb-org的解决
- 导入包管理系统使用的公钥
Ubuntu软件包管理工具(即dpkg和apt)通过要求分销商使用GPG密钥对软件包进行签名来确保软件包的一致性和真实性。使用以下命令以导入MongoDB公共GPG密钥:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
- 为MongoDB创建一个列表文件
创建/etc/apt/sources.list.d/mongodb-org-4.0.list
- ①、Ubuntu 14.04:
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
- ②、Ubuntu 16.04:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
- 更新apt
sudo apt-get update
- 安装mongodb
sudo apt-get install -y mongodb-org
- 安装指定版本的MongoDB
sudo apt-get install -y mongodb-org=4.0.0 mongodb-org-server=4.0.0 mongodb-org-shell=4.0.0 mongodb-org-mongos=4.0.0 mongodb-org-tools=4.0.0
或参考官方文档 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
(2)源码安装
①、选择相应版本和操作系统并下载
②、解压
tar -zxvf mongodb-linux-x86_64-ubuntu1804-4.0.3.tgz
③、移动到/usr/local/目录下
sudo mv -r mongodb-linux-x86_64-ubuntu1804-4.0.3/ /usr/local/mongodb
④、在shell的初始化脚本.bashrc中添加mongodb可执行文件到环境变量PATH中
a. 进入.bashrc文件中
cd ~
sudo vi .bashrc
b. 在.bashrc文件的最后添加:
export PATH=/usr/local/mongodb/bin:$PATH
⑤、mongodb启动失败解决方法
root@ubuntu:/usr/bin# mongo
MongoDB shell version v4.0.23
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
2021-04-08T19:48:24.942+0800 E QUERY [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:356:17
@(connect):2:6
exception: connect failed
- 解决方式一: 创建目录 /data/db
cd /
mkdir data
cd data
mkdir db
- 查找到mongo的安装路径
root@instance-tbbjrcnc:/# whereis mongo
mongo: /usr/bin/mongo
- 然后手动启动mongo
root@instance-tbbjrcnc:/# cd /usr/bin/
root@instance-tbbjrcnc:/usr/bin# sudo ./mongod -dbpath /data/db/
- 输入命令后,日志开始在终端打印,随后在桌面再打开命令终端输入
mongo
即可运行成功。
解决方式二:
(3)mongodb的官方文档
2.Windows安装Mongodb
(1)Windows安装Mongodb
- 安装过程中,你可以通过点击 “Custom(自定义)” 按钮来设置你的安装目录。
- 自定义Mongodb数据库的安装路径。
- 这里选择直接next:
- 下一步安装 “
install mongoDB compass
” 不勾选(当然你也可以选择安装它,可能需要更久的安装时间),MongoDB Compass 是一个图形界面管理工具,我们可以在后面自己到官网下载安装,下载地址:https://www.mongodb.com/download-center/compass。
- 点击Finish,完成安装。
(2)配置MongoDB
- 本次安装的是Mongodb4.4版本
- 首先要在MongoDB的data文件夹里新建一个db文件夹和一个log文件夹:
- 然后将
D:\Mongodb\Server\4.4\bin
添加到环境变量path中 - 启动MongoDB服务,在cmd窗口中运行如下命令:
mongod --dbpath D:\Mongodb\Server\4.4\data
- 运行成功之后,我们打开浏览器,输入127.0.0.1:27017,看到如下图,就说明MongoDB服务已经成功启动了。
- 但是如果每次都要这么启动服务的话也太麻烦了吧,这里你可以选择设置成开机自启动,也可以选择用命令
net start mongodb
来手动启动,这里我选择使用后者,具体方法如下。 - 还是打开cmd窗口,不过这次是以管理员身份运行,然后输入如下命令:
mongod --dbpath "D:\Mongodb\Server\4.4\data" --logpath "D:\Mongodb\Server\4.4\log\mongo.log" -install -serviceName "MongoDB"
- 如果没有报错的话就说明成功添加到服务里了,可以使用
win+R
然后输入services.msc
命令进行查看: - 如果想要改为手动启动Mongodb数据库,可按以下操作
①、运行sc delete mongodb
删除服务;
②、再运行一次配置服务的命令:
mongod --dbpath "D:\Mongodb\Server\4.4\data" --logpath "D:\Mongodb\Server\4.4\log\mongo.log" -install -serviceName "MongoDB"
- 然后再运行net start mongodb,服务启动成功: