shell命令连接mongo并执行操作

场景一:shell 命令连接 mongo,且删除指定数据库

  1. 本地安装了 mongo 客户端的情况,可以直接执行

    mongo db_host:db_port/db_name --eval "db.dropDatabase()"
    
  2. 我本地是没有安装 mongo 的,但是有 mongo 的容器,所以我可以再加一层,通过命令进入容器,然后连接数据库,再执行删除

    docker exec mongo mongo db_host:db_port/db_name --eval "db.dropDatabase()"
    
    • docker exec mongo 进入 mongo 容器,前提是你已经拉取了 mongo 镜像,创建了容器并且容器正在运行
    • mongo db_host:db_port/db_name 连接指定数据库
    • –eval “db.dropDatabase()” 调用删库函数

场景二:shell 命令连接 mongo,将查询结果输出到文件

  1. 本地安装了 mongo 客户端的情况,可以直接执行

    mongo db_host:db_port/db_name --eval "db.test_table.find({xxx = yyy})" > result.log
    
  2. 本地没有安装mongo,但是有mongo容器,可以如下操作

    • 先挂载一个共享目录到容器里面

      • docker-compose 配置

        volumes:
        		- 容器外目录:容器内目录
        
      • 非 docker-compose 编排,直接创建容器

        --mount type=bind,source=容器外目录,destination=容器内目录
        
    • 执行

       docker exec mongo mongo db_host:db_port/db_name --eval "db.test_table.find({xxx = yyy})" > 容器内目录/result.log
      
    • 在容器外挂载目录中查看输出的文件即可

    • 解决数据库查询显示条目问题(输入到文件同样受到限制,因为这只是把屏幕输出重定向到了文件)

        docker exec mongo mongo db_host:db_port/db_name --eval "DBQuery.shellBatchSize=100; db.test_table.find({xxx = yyy})" > 容器内目录/result.log
        DBQuery.shellBatchSize=100 // 这个就是设置显示条目数量
      

场景三:shell 命令连接 mongo,导入 xxx.gz 数据库文件生成对应数据库

  1. 本地安装了 mongo 客户端的情况,可以直接执行

     mongorestore --drop -h db_host:db_port --gzip --archive=xxx.gz
    
  2. 本地没有安装mongo,但是有mongo容器,可以如下操作

    • 挂载目录同场景二的第一步,这里挂载目录是为了让容器能访问到要使用的数据库文件,挂载好之后把文件放到容器外的共享目录内

    • 执行

        docker exec mongo mongorestore --drop -h db_host:db_port --gzip --archive=容器内目录/xxx.gz
      
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tobybo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值