mongoDB 常用命令
docker pull mongo 默认会拉取最新的镜像
一、拉取MongoDB镜像
docker pull mongo 默认会拉取最新的镜像

二、创建mongoDB容器
docker run -dit --name mymongo -p 27017:27017 mongo:latest --auth 参数说明: -i:表示运行容器 -t:表示容器启动后会进入其命令行 -d:守护式方式创建容器在后台运行 --name:容器名称 -p 27017:27017:端口映射(宿主机端口:容器端口),mongoDB默认是27017端口 --auth:访问mongo需要鉴权(账号密码访问),这个参数要放在最后面,否则会报错

三、进入容器并访问mongoDB
docker exec -it mymongo /bin/mongo 进入容器并执行mongo命令,进入mongo shell命令行

四、创建mongoDB用户(连续操作第三步不要退出来)
先了解一下mongo用户权限 read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库 dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除、查看统计或访问system.profile dbOwner:允许用户在指定数据库中执行任意操作,增、删、改、查等 clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 readWriteAnyDatabase:只在admin库中可用,赋予用户所有数据库的读权限 userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库userAdmin权限 dbAdminAnyDatabase: 只在admin数据库中可用,赋予用户所有数据库dbAdmin权限 root:只在admin数据库中可用。超级管理员用户,超级权限
创建用户(这里我们创建一个用户,然后给他超级管理员权限) 1、切换到admin库 use admin 2、创建账号 db.createUser({"user":"test","pwd":"123456","roles":["root"]}) 参数说明: "user":"test":这个键值对表示用户名为test "pwd":"123456":这个键值对表示密码为123456 "roles":["root"]:这个键值对是授权超级管理员权限,参考上面的mongo用户权限
3、验证用户
db.auth("test","123456")
4、使用账号密码登陆数据库
先退出mongoShell命令行(exit)
我是直接退出重新进入了容器,因为进入容器的姿势不对,直接在进入容器的时候执行了mongo,直接进入了mongoShell命令行,所以我得退出容器,在重新进入容器,再通过账号密码进入mongoShell命令行

5、验证权限 show dbs 相当于mysql里面的show databases 如果能看到默认的数据库(admin、confing、local)说明没有问题 如果不是用账号密码进入的mongoShell执行show dbs看不到数据库的,因为没有权限

五、mongoDB常用命令
显示所有数据库 show dbs

创建数据库(不存在)/切换数据库(存在) use mydb

创建集合 db.createCollection("mycol")

查看已有集合 show collections show tables

删除集合 db.mycol.drop()

删除数据库(删除当前使用的数据库) db.dropDatabase()

集合中插入数据 db.mycol.insertOne({"key":"val"}) 插入一个文档
db.mycol.insertMany([{"key1":"val"},{"key2":"val2"}]) 插入多个文档

更新集合 db.mycol.update({"key1":"val"},{$set:{"key1":"val11111"}})
更新操作符说明删除文档 删除一个文档 db.mycol.deleteOne({"key":"val"})
删除多个文档
db.mycol.deleteMany({"title":"test"})

删除所有哦文档 db.mycol.deleteMany({})
查询文档 查询所有数据 db.mycol.find()

单条件查询 db.mycol.find({"key1":"val3"})
and条件查询
db.mycol.find({"title":"test","key1":"val5"})
or条件查询
db.mycol.find({$or:[{"key1":"val3"},{"key1":"val5"}]})

来源:testingpai