docker环境mongoexport导出MongoDB数据

2023-03-12 13:38:09 浏览数 (1)

因为安全问题,服务器屏蔽了mongoDB给外部客户端调用,所以我们就不可以使用Navicat等客户端连接,操作确实不方便。最近需要导出一些mongoDB数据,只能采用命令的方式导出数据,需要借助mongoexport这个命令,命令使用比较容易,掌握一些参数用法即可

代码语言:javascript复制
--host :代表远程连接的数据库地址,默认连接本地Mongo数据库;
--port:代表远程连接的数据库的端口,默认连接的远程端口27017;
--username:代表连接远程数据库的账号;
--password:代表连接数据库的账号对应的密码;
--db:代表连接的数据库;
--collection:代表连接数据库中的集合;
--fields:代表要导出集合中的字段;
--type:代表导出输出的文件类型,包括csv和json文件;
--out:代表导出的文件名;
--query:代表查询条件;
--skip:跳过指定数量的数据;
--limit:读取指定数量的数据记录;
--sort:对数据进行排序,可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列,如sort({KEY:1})。

生产环境,mongodb是部署在docker里,所以下面结合docker命令,介绍一下使用过程

查看mongo容器

代码语言:javascript复制
[root@work01 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
0achabcdefghi        mongo               "docker-entrypoint.s…"   3 years ago         Up 9 months         0.0.0.0:27017->27017/tcp   test_mongo

进入这个mongo容器

代码语言:javascript复制
docker exec -it 0ach bash

使用mongoexport命令

代码语言:javascript复制
root@0achabcdefghi:/# mongoexport --db test_item --collection testModel --type=csv --fields=_id,BATCH_VERSION,ITEM_NAME --out 1.csv
2023-03-10T13:45:30.736 0000	connected to: localhost
2023-03-10T13:45:31.734 0000	[##############..........]  test_item.testModel  24000/39373  (61.0%)
2023-03-10T13:45:31.907 0000	[########################]  test_item.testModel  39373/39373  (100.0%)
2023-03-10T13:45:31.907 0000	exported 39373 records

然后exit命令退出容器,copy一下容器里文件到linux服务器里,test_item_mongo是容器的name

代码语言:javascript复制
docker cp test_item_mongo:1.csv 1.csv

0 人点赞