MongoDB的安装、配置和使用
一、卸载
为了避免对后续的安装造成影响,MongoDB一定要卸载干净;若你是第一次安装,跳过第一步卸载,直接进行第二步安装;若你不是第一次安装,则一定要进行第一步卸载!
1.停止服务
以管理员身份打开cmd,执行命令:
net stop mongodb
2.删除服务管理器中的mongodb
执行命令:
mongod --remove
或者执行命令:
#名字需要和服务中的MongoDB名称大小写一致
sc delete MongoDB
3.删除MongoDB目录、卸载软件、删除数据库
找到MongoDB的安装目录,直接删除;如:本人只有C盘,路径是:C:\MongoDB;找到它,删除即可;然后再是软件卸载,数据库删除。
二、下载和安装
2.1、下载
这里我是直接选择MSI安装,没有选择zip安装。我选择的是Windows x64版的,这里需要根据自己的实际情况做出选择;然后点击 Download 即可
2.2、安装
1.直接点击next
2.勾上同意协议,然后点击next
3.选择Custom,使用轻巧版的
4.指定安装路径
建议不要放在C盘;由于本人只有C盘,安装路径是:C:\MongoDB\Server\4.2\
5.默认直接点击next
6.左下角不要勾上Install MongoDB Compass
这是安装官方的可视化工具,可能会导致官网下载网速非常慢,另外就是可视化工具不好用,建议直接cmd操作
7. 点击Install
8. 部分人这里会弹出:开始失败,权限不够的提示!我们先点击Ignore忽略它,后面咱们再一一对应改错。或者点击Cancel,再把类似于360安全这种关闭/卸载,再次安装一遍MongoDB,此时应该是没有权限限制了。
9. 直接点击finish
10.配置环境变量
找到MongoDB安装目录下的bin文件夹的路径,我的是:C:\MongoDB\Server\4.2\bin
搜索栏输入:控制面板 - 系统 - 高级系统设置 - 环境变量path - C:\MongoDB\Server\4.2\bin ;然后确定确定确定即可
11.更改MongoDB开机自启动为手动
搜索栏输入:服务
选中,鼠标右键,属性,把自动改为手动
12.启动服务,测试mongodb是否存在问题
注:所有命令都是在cmd管理员权限下执行!
##启动服务
net start mongodb
##登入
mongo
##使用/创建数据库
use db01
##查看所有数据库列表
show dbs
##插入数据
db.manager.insert({username:"tom"});
#查找数据
db.manager.find();
若mongo登入失败,报以下错误,则找到MongoDB目录的bin文件夹路径(C:\MongoDB\Server\4.2\bin),将此路径添加进环境变量的path中。
朋友,若你的简单测试和我一样,那么恭喜你,mongodb安装成功!若你还想学习mongodb的常用命令,那么请直接看最后一步,常用命令;若不感兴趣,可以离开了!
若你的和我不一样,不要着急,咱们接着看,看看你的错误是否和我下面一样!
三、服务没有响应控制功能
启动服务,提示:服务没有响应控制功能
1.首先删除服务:
sc delete MongoDB
2.进入bin目录下
注:我的bin目录路径是:C:\MongoDB\Server\4.2\bin
3.执行如下命令:
mongod --dbpath C:\MongoDB\Server\4.2\data --logpath C:\MongoDB\Server\4.2\log\MongoDB.log --logappend --serviceName MongoDB --auth --install
注:C:\MongoDB\Server\4.2\data 是我data文件目录;C:\MongoDB\Server\4.2\log 是log文件目录
四、not authorized on admin to execute command…
启动服务,简单创建一个数据库,往内添加一条数据,可能会报错:not authorized on admin to execute command…
原因:Mongodb默认是不需要用户密码就可以连接的,执行命令报错"not authorized on admin to execute command ",表示当前登陆用户不具备相应权限;
解决方法:在bin目录的同级目录中,创建一个mongod.conf文件
mongod.conf文件内容:
注:dbpath是data目录的路径;logpath 是mongodb.log文件的路径
#数据存放目录
dbpath = C:\MongoDB\Server\4.2\data
#日志存放目录
logpath = C:\MongoDB\Server\4.2\log\mongodb.log
#以追加的方式记录日志
logappend = true
#默认端口号
port = 27017
#开启用户认证
auth = false
#mongodb绑定的ip地址,之后只能通过127访问
bind_ip = 0.0.0.0
#默认启用日志文件
journal = true
#过滤无用日志信息
quiet = true
#不允许全表扫描
notablescan = false
执行命令:
mongod --config "C:\MongoDB\Server\4.2\mongod.conf" --install
注:C:\MongoDB\Server\4.2\mongod.conf 是mongod.conf文件路径
MongoDB的安装就到此为止,若你的bug还没解决,建议卸载重装一下,亲测有效!
五、Mongodb常用命令
5.1 启动/关闭服务
#启动服务
net start mongodb
#关闭服务
net stop mongodb
5.2 数据库创建删除、表(集合) 创建删除
#使用数据库、创建数据库
use 数据库名
#删除数据库
db.dropDatabase()
#创建集合
db.createCollection(集合名)
#删除集合
db.集合名.drop()
#显示当前的数据集合
show collections
#查看所有数据库列表
show dbs
5.3 数据增删改查
#插入文档
db.集合名.insert(document)
#更新文档
#query:update的查询条件,类似sql update查询内where后面的
#update:update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
db.集合名.update(<query>,<update>,)
#删除文档
#query:(可选)删除的文档的条件
#justOne:(可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档
db.集合名.remove(<query>,<justOne>)
#查询文档
#query :可选,使用查询操作符指定查询条件
#projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)
db.集合名.find(query, projection)
5.4 条件操作符
#MongoDB (>) 大于操作符
$gt
#MongoDB (<) 小于操作符
$lt
#MongoDB(>=)大于等于操作符
$gte
#MongoDB (<=) 小于等于操作符
$lte
5.5 排序、读取指定数量的数据、跳过指定数量的数据
sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。
如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。
#排序
db.集合名.find().sort({KEY:1})
#读取指定数量的数据
db.集合名.find().limit(NUMBER)
#跳过指定数量的数据
db.集合名.find().limit(NUMBER).skip(NUMBER)
六、数据备份和恢复
6.1 数据备份
首先确认MongoDB服务是否启动,未启动则输入net start mongodb命令;紧接着找到Mongodb目录下的bin文件夹的路径(C:\MongoDB\Server\4.2\bin),将此路径切换为cmd的路径,然后输入mongodump命令即可。此时,bin文件夹里会出现一个dump文件夹,里面放置的是所有集合的备份,找到自己需要的那个集合即可(文件夹名字和集合名字一致)。
6.2 数据恢复
首先确认MongoDB服务是否启动,未启动则输入net start mongodb命令;紧接着找到Mongodb目录下的bin文件夹的路径(C:\MongoDB\Server\4.2\bin),将此路径切换为cmd的路径,然后对照输入以下命令:
mongorestore -h hostname -d dbname --dir path
## hostname: MongoDB所在服务器地址,默认为: localhost:27017
## dbname: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
## path: 指定备份的目录
## 如:mongorestore -h localhost:27017 -d eggdemo --dir C:\Users\曾曾\Desktop\项目\玫品酒库\eggdemo
在学习Node.js时,用到了MongoDB,同学之间报错也是千奇百怪的,特写此博客记录一下征服MongoDB的过程!
人的大脑和肢体一样,多用则灵,不用则废。——茅以升