• 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行是表头,即对应集合中的字段名称,如果不添加该参数,则会将文件中的第一行作为一条文件记录导入  

      

       

  • 相关阅读:
    吴裕雄--天生自然 R语言开发学习:高级编程
    吴裕雄--天生自然 R语言开发学习:使用ggplot2进行高级绘图(续二)
    吴裕雄--天生自然 R语言开发学习:使用ggplot2进行高级绘图(续一)
    吴裕雄--天生自然 R语言开发学习:使用ggplot2进行高级绘图
    吴裕雄--天生自然 R语言开发学习:处理缺失数据的高级方法(续一)
    吴裕雄--天生自然 R语言开发学习:处理缺失数据的高级方法
    吴裕雄--天生自然 R语言开发学习:分类(续二)
    2018年阿里云NoSQL数据库大事盘点
    就差这2块钱的安全投入,让这家企业损失了1977万!
    如何打造7*24h持续交付通道?阿里高级技术专家的5点思考
  • 原文地址:https://www.cnblogs.com/zmc60/p/16259929.html
Copyright © 2020-2023  润新知