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

由于一直以来用微软可视化图形界面习惯了,而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,一起输出来的,如果再导入数据库中的的话,肯定会出现主键冲突

.fctbNone { color: #000000 }

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

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

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

.fctbNone { color: #000000 }
.fctbStyle5 { color: #0000ff }

原文地址:https://www.cnblogs.com/pcbren/p/9536009.html

时间: 2024-10-16 18:09:19

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

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

非关系型数据库 命令区分大小写:命令结束符为回车(与MySQL不同之处) mongodb配置 sudo service mongodb start mongo mongodb基本概念 集合对应于关系型数据库的表的概念,创建集合:db.createCollections("<集合名>"):删除集合:db.<集合名>.drop():获取所有集合:show collections 文档对应于关系型数据库的记录的概念,mongodb的文档,是以类json的bson(js

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

查看数据库统计信息:db.stats()  > use testswitched to db test> db.stats(){        "db" : "test",         "collections" : 6,         "objects" : 3149516,        "avgObjSize" : 71.99159362898935,         "d

mongodb数据库的集合关联

通常不同集合的数据之间是有关系的,例如文章和用户信息存储在不同的集合中,但是文章时某个用户发表的,要查询文章的所有信息包括发表用户,就需要用到集合关联. 文章集合 用户集合 _id _id title name author age content hobbies 示例: const mongoose = require('mongoose') mongoose.connect('mongodb://localhost/test1', { useNewUrlParser: true }) .th

基于C#的MongoDB数据库开发应用(2)--MongoDB数据库的C#开发

在上篇博客<基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用>里面,我总结了MongoDB数据库的一些基础信息,并在最后面部分简单介绍了数据库C#驱动的开发 ,本文继续这个主题,重点介绍MongoDB数据库C#方面的使用和封装处理过程,利用泛型和基类对象针对数据访问层进行的封装处理. 前面介绍到,当前2.2版本的数据库C#驱动的API,支持两种不同的开发接口,一个是基于MongoDatabase的对象接口,一个是IMongoDatabase的对象接口,前者中

5.非关系型数据库(Nosql)之mongodb:创建集合,备份与导入导出, 数据还原,导入导出

 1 固定集合 固定集合值得是事先创建而且大小固定的集合 2 固定集合的特征:固定集合很像环形队列,如果空间不足,最早文档就会被删除,为新的文档腾出空间.一般来说,固定集合适用于任何想要自动淘汰过期属性的场景,没有太多的操作限制. 3 创建固定集合使用命令: db.createCollection("collectionName",{capped:true,size:100000,max:100}); size:指定集合大小,单位为KB,max指定文档的数量 当指定文档数量上限时,

mongodb远程数据库的连接以及备份导入导出数据

环境win10; 运行cmd cd到目录mongodb的bin目录: 连接远程mongodb: 连接命令:mongo -u username -p pwd host:post/database(数据库名) 当该用户有相应权限时,可以查看collection==>查看集合命令:show collections 导出命令:mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 详细解释: -h:mongodb所在的服务器地址(必须指定端口),不

mongodb数据库备份导入导出数据

备份数据: mongodump -h 192.168.2.20 -u game -p 12345678 -d dbname -o /data/test/ --excludeCollection=user_stats 其中-h为IP地址,-u账号,-p密码,-d数据库名称,-o存储数据的路径,--excludeCollection表示需过滤的集合,--excludeCollectionsWithPrefix表示过滤某些集合的前缀 导入数据: mongorestore --db gourmet --

MongoDB数据库备份恢复与导入导出

一.mongodump/mongorestore方式 使用场景:数据库导出指定collection,无法手工修改导出文件(二进制)允许条件:数据库原始collection导入操作前可以被删除(处理方式:插入)或者保留(处理方式:删除然后插入)导出数据格式:二进制类型,不可手工修改 1.备份数据库指定collection C:\Users\Administrator>mongodump -d webdb -c users -o e:\webdb_users_dumpconnected to: 12

MongoDB 备份(mongodump)恢复(mongorerstore) 导出 (Mongoexport) 导入( Mongoimport)

MongoDB 备份(mongodump) 在Mongodb中我们使用mongodump命令来备份MongoDB数据.该命令可以导出所有数据到指定目录中. mongodump命令可以通过参数指定导出的数据量级转存的服务器. 语法 mongodump命令脚本语法如下: mongodump -h dbhost -d dbname -o dbdirectory -h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017 -d: 需要备份的数据库实