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

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

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

接下来操作全部用Cmder工具来执行指令操作演示

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

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

导出集合数据工具 mongoexport.exe

导出集合数据工具 mongoimport.exe

二.准备阶段

1.启动 :Cmder.exe (没安装的话,用CMD一样可以)

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.

PCB MongoDB 数据库 Collection集合导出与导入的更多相关文章

  1. MongoDB数据库、集合、文档的操作

    MongoDB系列第一课:MongDB简介 MongoDB系列第二课:MongDB环境搭建 MongoDB系列第三课:MongDB用户管理 MongoDB系列第四课:MongoDB数据库.集合.文档的 ...

  2. PCB MongoDB数据库 备份与还原

    一. MongoDB数据库 备份与还原工具介绍: 数据备份工具  mongodump.exe 数据还原工具   mongorestore.exe 二. MongoDB数据库备份 mongodump - ...

  3. python实践——批量统计mongodb数据库的集合大小

    #!/usr/bin/env python import os,sys list = [] for i in range(3,50): l = os.popen("/bin/echo 'sh ...

  4. Mysql数据库(表)的导出和导入小结

    Why? 有人因为想看导出的开房记录库文件,然后学会了Mysql数据库文件的导入操作~: 有人因为工作原因,要用到数据库的备份与导入,然后应需学会了骚操作~: 我因为~~emmm 想看某个导出的库文件 ...

  5. MongoDB数据库和集合的基本操作

    非关系型数据库 命令区分大小写:命令结束符为回车(与MySQL不同之处) mongodb配置 sudo service mongodb start mongo mongodb基本概念 集合对应于关系型 ...

  6. windows下 Mysql 8.0.x 数据库简单的导出和导入!!!

    1.首先需要进入到mysql安装目录下的bin目录,执行cmd进入命令窗口. 2.导出(导出某个数据库,也可以针对某张表导出)2.1导出数据结构以及数据的命令: mysqldump -u root - ...

  7. Mongodb Capped Collection集合

    MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素! ...

  8. MongoDB数据库和集合的状态信息

    查看数据库统计信息:db.stats()  > use testswitched to db test> db.stats(){        "db" : " ...

  9. MongoDB 数据库、集合创建删除与文档插入

    本文章主要介绍mongodb的基本命令,前提条件,你的本地已经安装了mongo. 一.基本命令使用(主要是创建,增删改.) 0.mongoDb统计信息 获得关于MongoDB的服务器统计,需要在Mon ...

随机推荐

  1. 4.用Redis Desktop Manager连接Redis(Windows)

    相比连接CentOS的Redis,在Windows中的操作简单得让人感动. 所以这里我们使用的服务器系统是Windows Server 2016 R2. 而Windows版本的Redis官方网站并没有 ...

  2. tac

    功能说明:反向显示文件内容. 参数选项: -b 在行前而非行尾加分隔标志. -r 将分隔标志视作正则表达式来解析. -s 使用指定字符串代替换行作为分隔标志.   cat命令与tac命令的对比:

  3. centOS7创建python虚拟环境

    参考: 非常棒的2篇博客 https://www.centos.bz/2018/05/centos-7-4-%E5%AE%89%E8%A3%85python3%E5%8F%8A%E8%99%9A%E6 ...

  4. requirejs(模块化)

    <script src="../../dist/js/require.js" data-main="../../dist/js/main.js">& ...

  5. vino-server服务是啥服务

    近期接手一个项目,开始梳理服务器,突然发现有个进程是开启5900远程桌面端口的, 在不知情的情况下怕被人给利用了,啥也不说,先干掉再说. server端开启vino-server,允许别人查看自己的桌 ...

  6. 面试bb

    1.面试者进行自我介绍 2.学校/学历/大学生活及课程的心得总结(人品,性格评估) 3.技能介绍(是否对应聘工作有帮助,评估学习能力):编程/操作系统/测试工具/测试方法/脚本 4.离职原因/项目经验 ...

  7. js 根据数组分组动态生成table(相同项合并)

    <!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/ ...

  8. linux安装openjdk

    使用yum查找jdk: yum search java | grep jdk 执行安装命令:yum install java-1.8.0-openjdk

  9. NLTK学习笔记(七):文本信息提取

    目录 实体识别:分块技术 分块语法的构建 树状图 IOB标记 开发和评估分块器 命名实体识别和信息提取 如何构建一个系统,用于从非结构化的文本中提取结构化的信息和数据?哪些方法使用这类行为?哪些语料库 ...

  10. Mysql学习总结(41)——MySql数据库基本语句再体会

    1.数据定义语言(DDL):定义和管理数据对象,比如建立数据库.数据表 数据操作语言(DML):用于操作数据库对象中的包含的数据. 数据查询语言(DQL):用于查询数据库对象中包含的数据,能够对表进行 ...