MonGoDB的入门学习(一)之MonGoDB的介绍和安装
MonGoDB
Windows下载安装
https://www.mongodb.com/try/download/community?tck=docs_server
直接下载就行
下载好后进行安装,目录自行选择,这里我安装在了E目录下
安装好后原本是没有data文件和log文件夹的,这里我们需要自己手动创建这两个文件夹,并且要在data文件夹中在创建一个db文件夹
接下来就可以启动应用服务了,以管理员身份运行cmd命令窗口,并进入至E:\MongoDB\bin目录下,执行以下命令
1 | mongod --dbpath E:\MongoDB\data\db |
再打开一个cmd命令窗口,并且还是以管理员身份打开,进入到E:\MongoDB\bin目录下,执行以下命令
1 | mongo |
(如果现实这个界面就说明MongoDb已经启动成功了,但是要注意,这两个cmd命令框关闭后那么MongoDB也就结束服务了)
6、启动后我们可以在服务器输入 http://127.0.0.1:27017 或者 http://localhost:27017 进行查看
(这个样子就说明启动成功了)
7、使用配置文件启动MongoDB服务:在E:\MongoDB\config创建一个文件mongodb.conf,加入配置文件与直接运行命令的效果是一样的
1 2 3 4 5 6 | dbpath=E:\MongoDb\data\db # 数据库文件 logpath=E:\MongoDB\log\mongodb.log # 日志文件 logappend= true # 日志采用追加模式,配置后mongodb日志会追加到现有的日志文件,不会重新创建一个新文件 journal= true # 启用日志文件,默认启用 quiet= true # 这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为 false port=27017 # 端口号 默认为 27017 |
然后运行命令:
1 | sc create MongoDB binPath= "E:\MongoDB\bin\mongod.exe --service --config=E:\MongoDb\config\mongodb.conf" |
8、将MongoDB加入至环境变量:此时进入至mongodb的目录才可以使用mongodb的命令行工具,如果在其他的目录,是不可以使用mongodb的命令行工具的,我们可以将mongodb的目录加入至环境变量,这样在任何位置都可以使用mongodb命令行工具了
在设置中搜索变量就可以看到点击环境变量将mongodb的bin目录加入至path环境变量中
在加入了环境变量后,随便在哪个目录都可以使用mongodb命令行工具了
Linux下载安装
https://www.mongodb.com/try/download/community
一、创建MongoDB的安装路径
在/usr/local/ 创建文件夹mongoDB
1 | mkdir mongodb |
二、上传文件到Linux上的/usr/local/mangodb目录下
我首先在mongoDB下载路径下载mongoDB下载对应的版本.
通过FTP工具将安装包上传到linux机器上面.
三、解压文件
进入到/usr/local/mongodb目录:
1 | cd /usr/local/mongodb |
运行如下命令:
1 2 3 | tar zxvf mongodb-linux-x86_64-rhel70-5.0.5.tgz C /usr/local/mongodb 或者 tar zxvf mongodb-linux-x86_64-rhel70-5.0.5.tgz |
这里的 C 是解压后复制解压的文件到 /usr/local/mongoDB 目录下
四、重命名
进入 解压后的目录
1 | cd /usr/local/mongoDB/ |
执行
1 | mv mongodb-linux-x86_64-rhel70-5.0.5 mongodb |
五、创建配置文件
进入目录
1 2 | cd /usr/local/mongodb 创建数据库文件夹:mkdir data/db data/logs -p创建mongo配置文件夹:mkdir etc |
进入日志文件夹:
1 | cd /usr/local/mongodb/data/logs |
创建日志文件:
1 | touch mongodb.log |
进入配置文件夹:
1 | cd /usr/local/mongodb/etc |
创建配置文件:
1 | vim mongodb.conf |
该命令无该文件保存后会创建该文件,有该文件就是进入编辑
输入 i,进入编辑模式, 写入如下内容后,按esc 建 输入 :wq 保存退出
第一个(第二个4.0之后就不太好用)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #MonGoDB的配置文件 mongod.conf # 配置文件全部配置参考下面网址: # http://docs.mongodb.org/manual/reference/configuration-options/ # 存储数据的地点和方法. storage: dbPath: /usr/local/mongodb/data/db journal: enabled: true # engine: # wiredTiger: # 写入日志数据的位置. systemLog: destination: file logAppend: true path: /usr/local/mongodb/data/logs/mongod.log #进程如何运行 processManagement: fork: true # 是否启用进程在后台进行 pidFilePath: /usr/local/mongodb/mongodb.pid #pidfile的位置 timeZoneInfo: /usr/share/zoneinfo # 网络配置 net: port: 27017 #默认端口号 bindIp: 0.0.0.0 #设定IP地址白名单,此处我们注释为了方便学习 #为了方便学习改为true,生产环境使用白名单 bindIpAll: true #是否允许所有的ip地址访问默认是fase #processManagement: #security: #operationProfiling: #replication: #sharding: ## Enterprise-Only Options: #auditLog: #snmp: |
第二个配置(重点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #数据库文件存放路径 dbpath=/usr/local/mongodb/data/db #日志文件存放路径 logpath=/usr/local/mongodb/data/logs/mongodb.log #错误日志采用追加模式 logappend= true #启用日志文件,默认启用 journal= true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false quiet= true # 最大同时连接数 maxConns=100 # 不启用验证权限 noauth= true #端口 port=27017 #以守护程序的方式启用,即在后台运行开启子进程 fork= true #引擎设置 版本不同,引擎是不一样的,不用加 #storageEngine=mmapv1 #开启认证,首次安装先不开启,待用户添加完毕后可开启认证,这里先注释掉 #auth=true<br>#以守护程序的方式启用,即在后台运行 <br>nohttpinterface = true #绑定ip 这里设置为0.0.0.0则无论什么ip连接都成功,默认是127.0.0.1,也可设置成你自己服务器的IP bind_ip=0.0.0.0 |
启动mongodb:
1 | ./mongod -f /usr/local/mongodb/etc/mongodb.conf |
如下图就是启动成功!
启动成功后查看mongod状态
1 | ps -ef | grep mongod #查看mongod状态 |
六、设置环境变量
添加环境变量后我们就可以在任意地方直接使用mognodb 的命令了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | vi /etc/profile export PATH=$PATH:/usr/local/mongodb/bin #刷新权限 source /etc/profile 查看mongodb环境 mongo --version #查看mongodb状态 ps -ef | grep mongodb #杀死进程 kill -9 xxxx 使用下面这个命令启动 mongod --dbpath /usr/local/mongodb --logpath /usr/local/mongodb/data/logs/mongo.log --fork 开启验证码 mongod --dbpath /usr/local/mongodb --logpath /usr/local/mongodb/data/logs/mongo.log --fork --auth 第一个配置启动命令 mongod -f /usr/local/mongodb/etc/mongod.conf #通过制定配置文件来实现启动 关闭mongodb服务 方式1: 杀死进程就行 |
七、开机自启
1 | vi /usr/lib/systemd/system/mongodb.service |
进行配置
1 2 3 4 5 6 7 8 9 10 11 12 13 | [Unit] Description=mongodb After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongod.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/bin/mongod.conf PrivateTmp= true [Install] WantedBy=multi-user.target |
命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 设置权限 chmod 754 /etc/systemd/system/mongodb.service 重启 systemctl daemon-reload 启动 sudo systemctl start mongodb 查看启动信息 sudo systemctl status mongodb 永久启动 sudo systemctl enable mongodb 关闭自启动服务 systemctl disable mongod.service 停止服务 systemctl stop mongod 如果有journalctl -xe 使用journalctl -xe 查看错误日志,看到: Feb 25 10:35:15 jt-server1 mongod[26053]: Error reading config file: No such file or directory Feb 25 10:35:15 jt-server1 mongod[26053]: try '/opt/soft/mongodb/bin/mongod --help' for more information 接着去检查 一下mongodb.service文件 |
添加用户
1 2 3 4 5 6 7 8 9 10 11 12 | # 进入数据库 mongo # 进入testclient数据库 use testclient # 创建超级管理员(可以创建数据库) db.createUser({user: "root" ,pwd: "root" ,roles:[{role: 'root' , db: 'admin' }]}) # 退出 exit # 登录testclient 数据库 mongo testclient # root管理员登录 db.auth( 'root' , 'root' ) |
MonGoDB的应用场景
- 游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新
- 物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。
- 社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能
- 物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析
- 视频直播,使用 MongoDB 存储用户信息、礼物信息等
MonGoDB的优点
1 满足对数据库的高并发读写
2 对海量数据的高效存储和访问
3 对数据库高扩展性和高可用性
4 灵活的数据结构,满足数据结构不固定的场景
MonGoDB的缺点
1 一般不支持事务
2 实现复杂SQL查询比较复杂
3 运维人员数据维护门槛较高
4 目前不是主流的数据库技术
MonGoDB的特性
1 面向集合文档的存储:适合存储Bson(json的扩展)形式的数据;
2 格式自由,数据格式不固定,生产环境下修改结构都可以不影响程序运行;
3 强大的查询语句,面向对象的查询语言,基本覆盖sql语言所有能力;
4 完整的索引支持,支持查询计划;
5 支持复制和自动故障转移;
6 支持二进制数据及大型对象(文件)的高效存储;
7 使用分片集群提升系统扩展性;
8 使用内存映射存储引擎,把磁盘的IO操作转换成为内存的操作;
什么场景不能用MongoDB?
1 高度事务性系统:例如银行、财务等系统。MongoDB对事物的支持较弱;
2 传统的商业智能应用:特定问题的数据分析,多数据实体关联,涉及到复杂的、高度优化的查询方式;
3 使用sql方便的时候;数据结构相对固定,使用sql进行查询统计更加便利的时候;
什么时候使用MonGoDB
应用特征 | Yes / No |
---|---|
应用不需要事务及复杂 join 支持 | 必须 Yes |
新应用,需求会变,数据模型无法确定,想快速迭代开发 | ? |
应用需要2000-3000以上的读写QPS(更高也可以) | ? |
应用需要TB甚至 PB 级别数据存储 | ? |
应用发展迅速,需要能快速水平扩展 | ? |
应用要求存储的数据不丢失 | ? |
应用需要99.999%高可用 | ? |
应用需要大量的地理位置查询、文本查询 | ? |
MonGoDB的简介
NoSQL:Not Only SQL ,本质也是一种数据库的技术,相对于传统数据库技术,它不会遵循一些约束,比如:sql标准、ACID属性,表结构等。
MongoDB概念与RDMS概念对比
使用小黑窗口进行连接Windows版
1 2 3 4 5 | mongo 否则 mongo --host=127.0.0.1 --port=27017 #验证是否启动成功 show dbs |
使用Compass图形化界面
下载Download Center: Compass | MongoDB
直接安装就行
版本按照默认稳定版的来,选择自己电脑的操作系统,然后Download下载:

2、接着点击安装包安装,一路next即可(中途也可以更换安装路径):

3、根据安装路径找到执行文件,点击即可打开mongodb可视化界面:

4、打开之后界面如下,点击红框处填写数据库连接相关配置:

5、即出现如下界面,主要填写红框处必填项,port端口可以根据实际情况来,一般默认27017,此处都是按照默认的,最后点击按钮CONNECT进行数据库连接:


6、连接成功之后,会出现如下界面,显示出默认自带的三个数据库(admin、config、local):

MonGoDB执行添加语句加不上去的问题
官方的MongoDB 4.2系列驱动程序默认情况下启用重试写入。除非明确禁止重试写入,在升级到4.2系列驱动程序后,写入本地数据库的应用程序将遇到写入错误。
要禁用可重试写入,请在MongoDB集群的连接字符串中设置retryWrites=false
1 | spring.data.mongodb.uri=mongodb: //user:1@10.10.65.1:27017,10.10.65.2:27017,10.10.65.3:27017/test?retryWrites=false |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!