1.Mongod之mongoexport和mongoimport

1.前言

  MongoDB的数据的导出/导入是利用mongoexport和mongoimport两个工具来完成的,本质上它们是实现集合中每一条BSON格式的文档记录与本地文件系统上内容格式为JSON或CSV文件的转换的

  其中,json格式的文件是按照行组织内容的,每行为一个json对象,所以并不是严格意义上的json格式,它是一种扩展版本的json

  csv格式的文件也是按照行组织内容的,第1行为字段名称,每行包含输出的字段值,字段与字段之间使用逗号隔开。

  以上导出的两种文件都能使用文件工具直接打开。

2.导出工具mongoexport

  2.1 导出json格式文件:通过连接集群mongos导出json格式文件,命令如下: 

  mongoexport  --host=xxx  --port=xxx  --db=crm  --collection=xxx  --out=xxx.json
  • host:表示要连接的mongod实例进程所在的主机地址。如果从分片集群导出,则host取值为集群mongos的主机地址;如果是从单实例导出,则host取值为该实例所在主机地址,如果是从复制集导出,则host取值为复制集连接字符串,样式为host="replicaSetName/host1:port,host2:port,host3:port"
  • port:表示要连接的mongod实例进程所对应的主机端口。如果从复制集导出,这不需要单独传递port参数,因为在host参数中包含了端口
  • db:表示要从哪个数据库导出数据
  • collection:表示要从哪个集合导出数据
  • out:表示将数据导出到那个文件

  2.2. 导出CSV格式文件  

  mongoexport  --host=xxxx  --port=xxx  --db=xxx --collection=xxx  --type=csv --fields=xxx1,xxx2...  --out=xxx.csv

   如果是集群的话,请连接mongos进行导出。。。

   这里说一下几个与上面不同的参数:与导出json格式不同

   type:表示执行导出的文件格式,默认是json格式

   fileds:表示导出的字段,注意这个参数在导出csv格式时一定要加上

   noHeaderLine:这边表示去除表头字段信息,只导出数据

  2.3 只导出匹配的文件

        这里有个需求,就是只导出某一个文档下的部分数据

        这里需要的参数就是:qurey   

    mongoexport  --port 27017  -d test -c test  --query='{"x":{"$gt":1}}'  --out=test.json

    这里的意思是:导出集合test中字段为x大于1的所有文档

  2.4 从secondary节点导出数据

    以上的导出命令,在默认情况下都是从primary节点导出的,如果是分片集群,则从分片复制集中的primary节点导出数据;如果是复制集,则也会从primary节点导出数据,但是为了避免导出数据时对primary节点产生额外的负载,可以通过readPreference参数指定从Secondary节点导出数据,可以加上参数:--readPreference=secondary

 

3.导入工具mongoimport     

  mongoimport可以将JSON、CSV或TSV格式文件中的数据导入集合

  3.1导入JSON格式文件 

  mongoimport --host=xxx  --port=xxx  --db=xxx  --collection=xxx --file=xxx.json

  3.2导入CSV格式文件

mongoimport --host=xxx --port=xxx --db=xxx --collection=xxx --type=csv --headerline --file=xxx.csv
  • type=csv:表示导入的文件类型为CSV格式
  • headline:表示导入文件中的第1行是表头,即对应集合中的字段名称,如果不添加该参数,则会将文件中的第一行作为一条文件记录导入  

  

   

posted on   太白金星有点烦  阅读(378)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示