1.项目概述
开发一个web应用接口,能够通过该接口实现对数据库中数据的增删改。
2.工具准备
idea
docker
mongodb
robo 3T
springboot
postman
3.开发过程
3.1 docker中搭建mongo数据库
docker run -itd --name mongo -p 27017:27017 mongo --auth
(1)--name
后面的参数为docker容器名;
(2)-p
后面是端口映射,即宿主端口:容器端口
;
(3)--auth
是否开始鉴权,如果不想开启可以去掉;
成功启动MongoDB一个实例后,会返回容器ID,如305ebd8236678905d16dd76e75dcf99fdd812be6b13c240acece7985d29b316c
。
通过命令docker ps
可以查看正在运行的容器,经过检查,确实已经起来了。
注意:默认数据是存在容器系统的/data/db
目录下的,如果需要使用自定义的宿主机器目录,可以在启动命令加上参数:
-v /my/own/datadir:/data/db
3.1.1 进入容器创建数据库用户
docker exec -it mongo bash
通过容器中的客户端连接数据库
# 默认连接本地的27017端口的MongoDB
$ mongosh
# 指定IP与端口进行连接
$ mongosh 127.0.0.1:27017
# 指定用户名和密码连接到指定的MongoDB数据库
$ mongosh 127.0.0.1:27017/admin -u user -p password
查看版本
(1)在linux命令通过mongosh --version
查询;
(2)连接上数据库后,通过db.version()
查询。
root@5bb1ffddf870:/# mongosh --version
2.2.6
root@5bb1ffddf870:/# mongosh
Current Mongosh Log ID: 666e838d14a53264c0a26a12
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.2.6
Using MongoDB: 7.0.11
Using Mongosh: 2.2.6
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
test> db.version()
7.0.11
test>
3.1.2 创建admin管理用户
> use admin
switched to db admin
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
>
3.1.3 创建具有读写权限的用户
根据业务需求,创建不用的用户,如下面创建拥有读写权限的用户user:
> db.auth('admin','123456');
1
> db.createUser({ user:'user',pwd:'123456',roles:[ { role:'readWrite', db: 'testdb'}]});
Successfully added user: {
"user" : "user",
"roles" : [
{
"role" : "readWrite",
"db" : "testdb"
}
]
}
>
3.1.4 认证并用户并操作
> db.auth('user','123456')
1
> use testdb
switched to db testdb
>
> db.person.insert({name:'Larry',age:18})
WriteResult({ "nInserted" : 1 })
> db.person.find({})
{ "_id" : ObjectId("5ddaa14edbbac3c4f844366c"), "name" : "Larry", "age" : 18 }
>
3.2 两款数据库可视化工具推荐
3.2.1 Robo 3T
创建连接:
注意下面填的是鉴权数据库,而不是用户的数据库:
操作界面:
3.2.2 idea中的数据库插件
idea 右侧Database,点击加号,datasource选择mongodb
连接设置:
注意下面的User Database是该用户下的数据库,写错了会连不上。
注意下面Auth Database为鉴权的数据库,默认为admin。
查询
评论区