本文主要介绍MongoDB的导入导出操作。

一、导入数据

MongoDB支持csv格式的数据导入。本节除了导入MongoDB CookBook书本提供的测试数据,还介绍了其他格式的csv文件数据导入。

[root@hdp04 ~]# wget https://raw.githubusercontent.com/kishorek/India-Codes/master/csv/pincodes.csv
[root@hdp04 ~]# head pincodes.csv
"PostOfficeName","Pincode","DistrictsName","City","State"
"Aberdeen Bazar","744104","A&N Islands","Port Blair","Andaman Nicobar"
"Bakultala","744208","A&N Islands","Port Blair","Andaman Nicobar"
"Bambooflat","744107","A&N Islands","Port Blair","Andaman Nicobar"
"Betapur","744201","A&N Islands","Port Blair","Andaman Nicobar"
[root@hdp04 ~]# mongoimport --type csv -d admin -c postalCodes --headerline --drop pincodes.csv
2018-06-06T15:34:41.922+0800    connected to: localhost
2018-06-06T15:34:41.922+0800    dropping: admin.postalCodes
2018-06-06T15:34:42.981+0800    imported 39734 documents
> db.postalCodes.count()
39734


如果csv文件中存在空字段的内容,则需在导入的时候指定每个字段名称,如下:

[root@hdp04 ~]# tail temp.csv
"zy-2-3106915","candon",,"2","zy14031238480","Pp2d8+VJOoPOUP2UVMBS4g==","520000","520300",,"1",,,,
"zy-2-3106931","jason",,"2","zy14031238484","+3xWTli/pbRaswx0XxALPg==","520000","520300",,"1",,,,
"zy-2-3106958","mako",,"2","zy14031238434","j8+Fz3EkRH+3JtWKNmScmA==","520000","520300",,"1",,,,
"zy-2-3731038","lanqi",,"2","zy160300038106","6N1phcF07vGhDv7Vof3CPA==","520000","520300",,"1",,,,
"zy-2-3175835","wgjk",,"2","zy14031352290","wxU1xIQbTAmWoR+q9LrLcw==","520000","520300",,"1",,,,
[root@hdp04 ~]# mongoimport --db admin --collection temp --type csv --fields ID,NAME,FILED1,USERTYPE,PHONE,FILED2,FILED3,FILED4,PHONE1,TYPE,FILED5,FILED6,FILED7,FILED8 --file temp.csv
2018-06-10T18:25:32.739+0800    connected to: localhost
2018-06-10T18:25:35.734+0800    [#.......................] admin.temp   8.93MB/177MB (5.0%)
2018-06-10T18:25:38.736+0800    [##......................] admin.temp   17.6MB/177MB (9.9%)
2018-06-10T18:25:41.733+0800    [###.....................] admin.temp   26.2MB/177MB (14.8%)
2018-06-10T18:25:44.733+0800    [####....................] admin.temp   34.8MB/177MB (19.7%)
2018-06-10T18:25:47.733+0800    [#####...................] admin.temp   43.4MB/177MB (24.5%)
2018-06-10T18:25:50.734+0800    [#######.................] admin.temp   53.4MB/177MB (30.1%)
2018-06-10T18:25:53.733+0800    [########................] admin.temp   62.9MB/177MB (35.5%)
2018-06-10T18:25:56.736+0800    [##########..............] admin.temp   75.5MB/177MB (42.6%)
2018-06-10T18:25:59.734+0800    [###########.............] admin.temp   84.2MB/177MB (47.6%)
2018-06-10T18:26:02.734+0800    [############............] admin.temp   93.0MB/177MB (52.5%)
2018-06-10T18:26:05.733+0800    [#############...........] admin.temp   102MB/177MB (57.4%)
2018-06-10T18:26:08.733+0800    [##############..........] admin.temp   110MB/177MB (62.2%)
2018-06-10T18:26:11.734+0800    [################........] admin.temp   119MB/177MB (67.2%)
2018-06-10T18:26:14.733+0800    [#################.......] admin.temp   128MB/177MB (72.3%)
2018-06-10T18:26:17.733+0800    [##################......] admin.temp   137MB/177MB (77.6%)
2018-06-10T18:26:20.733+0800    [###################.....] admin.temp   146MB/177MB (82.7%)
2018-06-10T18:26:23.733+0800    [#####################...] admin.temp   156MB/177MB (87.9%)
2018-06-10T18:26:26.733+0800    [######################..] admin.temp   164MB/177MB (92.9%)
2018-06-10T18:26:29.734+0800    [#######################.] admin.temp   175MB/177MB (99.1%)
2018-06-10T18:26:30.197+0800    [########################] admin.temp   177MB/177MB (100.0%)
2018-06-10T18:26:30.197+0800    imported 3347522 documents
> db.temp.count()
3347522

二、简单查询

  1. 统计行数

    > db.postalCodes.count()
    39734

    2.查询一条记录

    > db.postalCodes.findOne()
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c95b"),"PostOfficeName" : "Aberdeen Bazar","Pincode" : 744104,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }

    3.查找多行记录

    > db.postalCodes.find().pretty()
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c95b"),"PostOfficeName" : "Aberdeen Bazar","Pincode" : 744104,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c95c"),"PostOfficeName" : "Campbell Bay","Pincode" : 744302,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c95d"),"PostOfficeName" : "Betapur","Pincode" : 744201,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c95e"),"PostOfficeName" : "Car Nicobar","Pincode" : 744301,"DistrictsName" : "Car Nicobar","City" : "Car Nicobar","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c95f"),"PostOfficeName" : "Diglipur","Pincode" : 744202,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c960"),"PostOfficeName" : "Haddo","Pincode" : 744102,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c961"),"PostOfficeName" : "Hut Bay","Pincode" : 744207,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c962"),"PostOfficeName" : "Havelock","Pincode" : 744211,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c963"),"PostOfficeName" : "Bambooflat","Pincode" : 744107,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c964"),"PostOfficeName" : "Kapanga","Pincode" : 744304,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c965"),"PostOfficeName" : "Long Island","Pincode" : 744203,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c966"),"PostOfficeName" : "Marine Jetty","Pincode" : 744101,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c967"),"PostOfficeName" : "Mayabunder","Pincode" : 744204,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c968"),"PostOfficeName" : "N S Building","Pincode" : 744101,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c969"),"PostOfficeName" : "Nancowrie","Pincode" : 744303,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c96a"),"PostOfficeName" : "Neel Island","Pincode" : 744104,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c96b"),"PostOfficeName" : "New Secretariate Bldg","Pincode" : 744105,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c96c"),"PostOfficeName" : "Bakultala","Pincode" : 744208,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c96d"),"PostOfficeName" : "Oralkatcha","Pincode" : 744210,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    {"_id" : ObjectId("5b178e91f02ce24e2dd4c96e"),"PostOfficeName" : "Port Blair","Pincode" : 744101,"DistrictsName" : "A&N Islands","City" : "Port Blair","State" : "Andaman Nicobar"
    }
    Type "it" for more

    上面的命令查找所有记录,默认只显示前20行,如果要查看更多的记录,键入“it”继续查看(只显示20条记录)。

    三、导出数据

    MongoDB的mongoexport默认是导出collection的所有内容,如下:

    [root@hdp04 ~]# mongoexport -d admin -c postalCodes -o dd.csv
    2018-06-11T11:40:19.660+0800    connected to: localhost
    2018-06-11T11:40:20.658+0800    [#########...............]  admin.postalCodes  16000/39734  (40.3%)
    2018-06-11T11:40:21.658+0800    [###################.....]  admin.postalCodes  32000/39734  (80.5%)
    2018-06-11T11:40:21.873+0800    [########################]  admin.postalCodes  39734/39734  (100.0%)
    2018-06-11T11:40:21.873+0800    exported 39734 records

    如果要导出指定的字段内容,需要加上--fields参数,如下:

    [root@hdp04 ~]# mongoexport -d admin -c postalCodes -o ee.csv --fields 'PostOfficeName,Pincode,DistrictsName'
    2018-06-11T11:41:33.805+0800    connected to: localhost
    2018-06-11T11:41:34.803+0800    [#########...............]  admin.postalCodes  16000/39734  (40.3%)
    2018-06-11T11:41:35.495+0800    [########################]  admin.postalCodes  39734/39734  (100.0%)
    2018-06-11T11:41:35.495+0800    exported 39734 records

MongoDB CookBook读书笔记之导入导出相关推荐

  1. 【SQL.Cookbook读书笔记】——1检索记录

    SQL.Cookbook读书笔记 前言 1检索记录 1.1从表中检索所有行和列 1.2从表中检索部分行(where) 1.3查找满足多个条件的行(where.and.or) 1.4从表中检索部分列 1 ...

  2. MongoDB学习day10--数据库导入导出

    在 Mongodb 中我们使用 mongodump 命令来备份 MongoDB 数据. 该命令可以导出所有数据到指定目录中.mongodump 命令可以通过参数指定导出的数据量级转存的服务器. 使用m ...

  3. Flex CookBook 读书笔记 第一部分

    定义数组和对象 可以通过ActionScript或者在Mxml中定义 <mx:Array> <mx:String>flex</mx:String> <mx:S ...

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

    .mongodump/mongorestore方式 使用场景:数据库导出指定collection,无法手工修改导出文件(二进制) 允许条件:数据库原始collection导入操作前可以被删除(处理方式 ...

  5. 数据库工作笔记009---linux 导入导出postgresql数据库

    JAVA技术交流QQ群:170933152 一.命令操作:数据的导出:$ pg_dump -U postgres(用户名) (-t 表名) 数据库名(缺省时同用户名) > 路径/文件名.sqlp ...

  6. mongoDB的读书笔记(04)_【Replica】(01)_Replica的一些基本概念

    数据库分布已经是当下互联网的标准配置.原来单节点标准配置,一台web服务器,一台数据库服务器的1+1模式,可以应对一个小公司或者少量的访问量.而随着服务的提升,对于7×24×365的高可用性的要求的需 ...

  7. PHP Cookbook读书笔记 – 第16章互联网服务

    发送电子邮件 书中主要是以PEAR中的邮件发送类(Mail)来讲解的(关于如何在WIN系统下安装PEAR可以参考WIN下成功安装PEAR).PEAR的MAIL类可以通过3种方式来发送电子邮件: 通过P ...

  8. MongoDB实战读书笔记(二):面向文档的数据

    1 schema设计原则 1.1 关系型数据库的三大设计范式 第一范式(1NF)无重复的列 第二范式(2NF)属性完全依赖于主键 [ 消除部分子函数依赖 ] 第三范式(3NF)属性不依赖于其它非主属性 ...

  9. mongoDB的读书笔记(via3.0)(00)_【概览】(02)_mongoDB3.0中的mongod启动方式小试牛刀

    mongod启动 本来想写Replica的非测试模式的集群架构的,但是实在是手痒痒,把mongoDB的3.0给download下来了,看了一两眼文档后决定还是先大概写一点点关于启动的话题,之后写Rep ...

最新文章

  1. LA3708墓地雕塑
  2. df命令,du命令,磁盘分区
  3. 第1章-导言-习题1.13-1.17
  4. pandas 不要编号 加一行_文科生带你学Python|Pandas读取数据
  5. 此windows副本不是正版_阳光单职业传奇正版-阳光单职业传奇正版官网版v2.0
  6. 计算机用word做海报,【2人回答】电脑Word怎么做海报?-3D溜溜网
  7. 在C#中使用钩子实现Alt+F4健窗口最小化功能
  8. 编译原理:文法和语言总结与梳理
  9. 通过Visual Studio 2019搭建DirectX 12开发环境
  10. 柠檬班性能测试day3_性能测试基础知识(0521)
  11. 批一批淘宝首页的源代码
  12. 【Springboot】SpringBoot基础知识及整合Thymeleaf模板引擎
  13. 版式设计:什么是“三率一界”?
  14. 逆向工程实验_lab0(密码学算法逆向)
  15. 基于python开发pepper机器人的人脸识别--使用facenet
  16. 走格子(数学组合/动态规划)
  17. 拓幻图形学工程师教学手册(第一讲)|一字一字敲出OpenGL学习教程
  18. 【Alpha】阶段第三次Scrum Meeting
  19. pacs dicom3.0 DCMTK EFilm
  20. 跟小伙伴一起分享cfa考一、二级经验。

热门文章

  1. linux内核按键驱动,嵌入式Linux按键驱动框架
  2. zend 安装php 5.6,CentOS7.0+Zend Guard Loader for PHP 5.6环境搭建
  3. 21天jenkins打卡Day4-新增账号
  4. “我升职的原因是:比同事更早学会这个知识”
  5. matlab虚拟现实之V-Realm Builder2建模第二部分
  6. 5复数与复变函数(五)
  7. AlexNet卷积神经网络
  8. matlab 雷达工具箱,使用Matlab的工具箱,学习“相控阵雷达技术”
  9. java输出输入的日期_Java编写的日历,输入年月,输出这个月的日期与星期
  10. python调用matlab绘图_python初步调用MATLAB及网址存档