docker环境mongoexport导出MongoDB数据

Posted smileNicky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker环境mongoexport导出MongoDB数据相关的知识,希望对你有一定的参考价值。

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

--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容器

[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容器

docker exec -it 0ach bash

使用mongoexport命令

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

docker cp test_item_mongo:1.csv 1.csv

以上是关于docker环境mongoexport导出MongoDB数据的主要内容,如果未能解决你的问题,请参考以下文章

使用来自 mongoexport 的一个查询导出 json 文件时出错

Mongodb数据导出命令mongoexport和导入命令mongoimport介绍

Mongodb数据导出工具mongoexport和导入工具mongoimport使用

使用mongoexport命令把MongoDB中的数据导出为excel CSV文件

Mongoexport 导出无效的 json 文件

mongoexport导出记录到csv文件