mongoDB 常用命令

发布于 更新于
本文目录
  1. 一、拉取MongoDB镜像
  2. 二、创建mongoDB容器
  3. 三、进入容器并访问mongoDB
  4. 四、创建mongoDB用户(连续操作第三步不要退出来)
  5. 五、mongoDB常用命令

技术文章持续集成与运维

docker pull mongo 默认会拉取最新的镜像

一、拉取MongoDB镜像

docker pull mongo 默认会拉取最新的镜像

image.png

二、创建mongoDB容器

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

image.png

三、进入容器并访问mongoDB

docker exec -it mymongo /bin/mongo 进入容器并执行mongo命令,进入mongo shell命令行

image.png

四、创建mongoDB用户(连续操作第三步不要退出来)

  1. 先了解一下mongo用户权限 read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库 dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除、查看统计或访问system.profile dbOwner:允许用户在指定数据库中执行任意操作,增、删、改、查等 clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 readWriteAnyDatabase:只在admin库中可用,赋予用户所有数据库的读权限 userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库userAdmin权限 dbAdminAnyDatabase: 只在admin数据库中可用,赋予用户所有数据库dbAdmin权限 root:只在admin数据库中可用。超级管理员用户,超级权限

  2. 创建用户(这里我们创建一个用户,然后给他超级管理员权限) 1、切换到admin库 use admin 2、创建账号 db.createUser({"user":"test","pwd":"123456","roles":["root"]}) 参数说明: "user":"test":这个键值对表示用户名为test "pwd":"123456":这个键值对表示密码为123456 "roles":["root"]:这个键值对是授权超级管理员权限,参考上面的mongo用户权限 image.png 3、验证用户 db.auth("test","123456") image.png 4、使用账号密码登陆数据库 先退出mongoShell命令行(exit) 我是直接退出重新进入了容器,因为进入容器的姿势不对,直接在进入容器的时候执行了mongo,直接进入了mongoShell命令行,所以我得退出容器,在重新进入容器,再通过账号密码进入mongoShell命令行 image.png

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

五、mongoDB常用命令

  1. 显示所有数据库 show dbs image.png

  2. 创建数据库(不存在)/切换数据库(存在) use mydb image.png

  3. 创建集合 db.createCollection("mycol") image.png

  4. 查看已有集合 show collections show tables image.png

  5. 删除集合 db.mycol.drop() image.png

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

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

  8. 更新集合 db.mycol.update({"key1":"val"},{$set:{"key1":"val11111"}})

    image.png更新操作符说明

  9. 删除文档 删除一个文档 db.mycol.deleteOne({"key":"val"}) image.png 删除多个文档 db.mycol.deleteMany({"title":"test"}) image.png

    删除所有哦文档 db.mycol.deleteMany({})

  10. 查询文档 查询所有数据 db.mycol.find() image.png

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

来源:testingpai

继续阅读