docker安装mongoDB数据库
拉取mongo镜像
docker pull mongo:4.4
创建mongo数据持久化目录
mkdir -p /docker_volume/mongodb/data
运行容器
docker run -itd --name mongo -v /docker_volume/mongodb/data:/data/db -p 27017:27017 mongo:4.4 --auth
-v: 将宿主机的/docker_volume/mongodb/data映射到容器的/data/db目录,将数据持久化到宿主机,以防止删除容器后,容器内的数据丢失
–auth:需要密码才能访问容器服务
启动容器
docker start mongo
登录mongo容器,并进入到【admin】数据库
docker exec -it mongo mongo admin
MongoDB创建用户root
- 创建一个root用户,密码123456,mongo 默认没有用户
db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});
【user:‘root’ 】:设置用户名为root
【pwd:‘123456’】:设置密码为123456
【role:‘userAdminAnyDatabase’】:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
【db: ‘admin’】:可操作的数据库
【‘readWriteAnyDatabase’】:赋予用户读写权限
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
更新root用户的密码。将your_new_password替换为您想要设置的新密码
db.updateUser(
{ user: "root" },
{
password: createHashedPassword("your_new_password"),
roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
}
)
MongoDB数据库的增删改查相关操作
MongoDB数据库的增删改查操作如下:
增加数据:使用insert()方法向集合中插入文档。例如,向名为mycol的集合中插入一个文档:
db.mycol.insert({name: “Tom”, age: 20})
删除数据:使用remove()方法删除符合条件的文档。例如,删除名为mycol的集合中age为20的文档:
db.mycol.remove({age: 20})
修改数据:使用update()方法更新符合条件的文档。例如,将名为mycol的集合中所有name为Tom的文档的age改为25:
db.mycol.update({name: “Tom”}, {$set: {age: 25}})
查询数据:使用find()方法查询符合条件的文档。例如,查询名为mycol的集合中所有文档:
db.mycol.find()
还可以使用条件语句进行更复杂的查询。例如,查询名为mycol的集合中所有age大于等于20且小于等于30的文档:
db.mycol.find({age: {$gte: 20, $lte: 30}})