PCB MongoDB 数据库 Collection集合导出与导入

因为一直以来用微软可视化图形界面习惯了,而MongoDB是命令式操做,而用系统自带CMD操做不方便,html

这里介绍一款CMD的替代品,大小100多M。git

Cmder工具下载  https://github.com/cmderdev/cmder/releasesgithub

接下来操做所有用Cmder工具来执行指令操做演示数据库

 

 一.Collection集合导出与导入工具介绍:json

     NoSQL中Collection集合对应SQL的的关系至关于表的概念,即对表的导出与导入。工具

        导出集合数据工具 mongoexport.exe     性能

        导出集合数据工具 mongoimport.exe    学习

        

二.准备阶段编码

      1.启动 :Cmder.exe (没安装的话,用CMD同样能够)spa

       2.输入:D:    进行MongoDB安装盘

       3.输入:cd D:\Program Files\MongoDB\Server\4.0\bin  进入MongoDB安装目录

       

三.Collection集合导出--Json格式

mongoexport -d pcbdb -c ppeflow -o "e:\db\ppeflow.json"

    参数说明:

    -d pcbdb                               数据库名

    -c ppeflow                            集合名(至关SQL中的表名)

    -o "e:\db\ppeflow.json"         输出路径

    --typeo json                         默认json输出,固然加入此参数入

        

四.Collection集合导出--CSV格式

 mongoexport -d pcbdb -c ppeflow --type csv -f "_id,techname,orderid" -o "e:\db\ppeflow.csv"

    参数说明:

    -d pcbdb                               数据库名

    -c ppeflow                            集合名(至关SQL中的表名)

    --type csv                           输出格式(注意type前面有2个-)

    -f "_id,techname,orderid"     输出字段名(字段与字段之间用,分隔)

    -o "e:\db\ppeflow.csv"         输出路径     

五.Collection集合导入--Json格式

 mongoimport.exe -d pcbdb -c ppeflow1 --file "e:\db\ppeflow.json"

    参数说明:

    -d pcbdb                               数据库名

    -c ppeflow1                           集合名(当不存在时,自动建立)

    -o "e:\db\ppeflow.json"         导入Json路径

    --typeo json                         默认json输入格式,固然加入此参数入

六.Collection集合导入--CSV格式

mongoimport -d pcbdb -c ppeflow2 --type csv -f "_id,techname,orderid" --file "e:\db\ppeflow.csv"

    参数说明:

    -d pcbdb                               数据库名

    -c ppeflow2                           集合名(至关SQL中的表名)

    --type csv                             输出格式(注意type前面有2个-)

    -f "_id,techname,orderid"      输入字段名(字段与字段之间用,分隔)

    --file "e:\db\ppeflow.csv"        读取CSV路径(注意file前面有2个-)     

-headerline               除去首行的字段行(此例子没加此参数,缘由报错,未找到解决方法)

 

七.关键参数说明
h,--host :表明远程链接的数据库地址,默认链接本地Mongo数据库;
--port:表明远程链接的数据库的端口,默认链接的远程端口27017;
-u,--username:表明链接远程数据库的帐号,若是设置数据库的认证,须要指定用户帐号;
-p,--password:表明链接数据库的帐号对应的密码;
-d,--db:表明链接的数据库;
-c,--collection:表明链接数据库中的集合;
-f, --fields:表明导入集合中的字段;
--type:表明导入的文件类型,包括csv和json,tsv文件,默认json格式;
--file:导入的文件名称
--headerline:导入csv文件时,指明第一行是列名,不须要导入;

 

 八.凝问解答

    1.导出的json与CSV是什么文本编码类型是什么格式?

         导出的文本编码类型是(encoding)UTF8. 

     2.用Excel打开CSV是乱码,怎么解决呢?

            

            方法1:用NotePad打开,而后点击菜单【编码】->【转为ANSI编码】,再用Excel打开便可。

            方法2:用Excel引用文本的方式加转换,参考https://jingyan.baidu.com/article/48a4205705c098a925250455.html

      3.导入CSV到MongoDB去掉首行的字段行?

          按官方文档:在导入CSV参数中加入-headerline 便可

mongoimport -d pcbdb -c ppeflow2 --type csv -headerline -f "_id,techname,orderid" --file "e:\db\ppeflow.csv"

         但实际在笔者实测中,目前没解决.报以下错误,

          4.MongoDB导出CSV能够指定字段导出,那么输出Json文件是否能指定字段导出?

                 不能,导出的Json文件是整个集成中全部字段.

          5.MongoDB导出CSV仍是Json格式,如何选择?

               经过如下对比,请自行选择.

 

              大小对比: CSV占用字节数少        优点

                                  JSON占用字节数多      

             深层次结构对比:CSV若是对于大于2层嵌套结构树节构查看不明确。          优点

                                             JSON深层次结构用Json树结构查看器对结构定义清晰,

                低层次结构对比:CSV若是对于<=2层嵌套结构树节构查看定义清晰,         平局

                                               JSON低层次结构用Json树结构查看器对结构定义清晰,   平局                          

                字段对比:CSV可选字段输出,      优点

                                    JSON所有字段输出

                 反序化列:CSV不支持                       

                                    JSON支持                      优点  

      6.MongoDB导入CSV是否指定字段输入?

           不行,导入CSV并不能够指定字段导入,好比CSV中有3个字段,导入到MongoDB中不能只导入指定的2个字段

           而这里的指定字段名,是CSV文件中每一个字段指定一个字段名,导入到MongoDB中,

           若是CSV有3个字段,而导入的字段名只有2个,那CSV中第3个字段由MongoDB默认fled3字段

         (最好CSV有多少个字段,导入的字段名就有多少个,保持字段名数量与字段数量匹配,而且顺序一致

     7.MongoDB导出的Json后,而后再导入,导不进去?

          因为导出JSON会将主键_id 即OjbectId,一块儿输出来的,若是再导入数据库中的的话,确定会出现主键冲突

  最佳解决方法:导入到另一个集合,而后再经过2个集成的惟一主键对比,再进行突处理---冲突不替换,仍是冲突替换)   
 

 后续对MongoDB的探索学习,主要是基于SQL已有的功能,在MongoDB也应该有的功能进行相应的实现,

后续更新内容:NoSQL与SQL 增删改查的语句区别,主键索引,主从库复制,备份还原,请求数据与性能监控,Log日志,大尺寸文件GridFS.

相关文章
相关标签/搜索