本文共 8987 字,大约阅读时间需要 29 分钟。
本文主要介绍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.csv2018-06-06T15:34:41.922+0800 connected to: localhost2018-06-06T15:34:41.922+0800 dropping: admin.postalCodes2018-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.csv2018-06-10T18:25:32.739+0800 connected to: localhost2018-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
> 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.csv2018-06-11T11:40:19.660+0800 connected to: localhost2018-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: localhost2018-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
转载地址:http://htfdx.baihongyu.com/