MongoDB学习之旅十三:MongoDB 导入导出

    内容比较简单,依葫芦画瓢。

    先讲导入,导入分为两种:json数据导入以及csv数据导入

    导入json数据

    我们先将表user删除掉,以便演示效果:

> db.user.drop(); 
true 
> show collections; 
system.indexes 

>

    然后导入数据

[root@localhost bin]#./mongoimport -d my_mongodb -c user user.dat 
connected to: 127.0.0.1 
imported 2 objects 
[root@localhost bin]# 

    可以看到导入数据的时候会隐式创建表结构
    导入csv数据

    我们先讲标user删除掉,以便演示效果

> db.user.drop(); 
true  
> show collections; 
system.indexes 
>  

    然后导入数据 

[root@localhost bin]# ./mongoimport -d my_mongodb -c user --type csv --headerline --file user_csv.dat
connected to: 127.0.0.1 
imported 3 objects 
[root@localhost bin]#

    参数说明

    type  指明要导入的文件格式

    headerline 指明不导入第一行

    file 指明要导入的文件路径
   !!!注意:CSV格式更好,主流数据库都支持导出为CSV格式,所以这种格式非常利于异构数据迁移。

    再讲导出

    假设库里有一张user表,里面有2条记录,我们要将它导出

> use my_mongodb  
switched to db my_mongodb 
> db.user.find();  
{ "_id" : ObjectId("4f81a4a1779282ca68fd8a5a"), "uid" : 2, "username" : "Jerry", "age" : 100 } 
{ "_id" : ObjectId("4f844d1847d25a9ce5f120c4"), "uid" : 1, "username" : "Tom", "age" : 25 } 
> 

    同样,导出也有两种方式:json格式以及CSV格式。

    先来json格式

[root@localhost bin]# ./mongoexport -d my_mongodb -c user -o user.dat
connected to: 127.0.0.1 
exported 2 records  
[root@localhost bin]# cat user.dat  
{ "_id" : { "$oid" : "4f81a4a1779282ca68fd8a5a" }, "uid" : 2, "username" : "Jerry", "age" : 100 } 
{ "_id" : { "$oid" : "4f844d1847d25a9ce5f120c4" }, "uid" : 1, "username" : "Tom", "age" : 25 } 
[root@localhost bin]# 

    参数说明

    d 指明使用的库

    c 指明要导出的表

    o 指明要导出的文件名

    再来CSV格式

[root@localhost bin]# ./mongoexport -d my_mongodb -c user --csv -f uid,username,age-o user_csv.dat
connected to: 127.0.0.1 
exported 2 records  
[root@localhost bin]# cat user_csv.dat 
uid,username,age 
2,"Jerry",100 
1,"Tom",25  
[root@localhost bin]#

    参数说明:

    csv 指明要导出为CSV格式

    f 指明要导出哪些列

    更详细用法可以输入命令mongoexport -help来查看 



    需要注意的:其实mongodb导出是可以按条件的,比如如下导出的是5月12号整天的数据。

/usr/local/mongodb/bin/mongoexport -h 192.168.100.109 --port 27017 -d test -c testdb -q "{\"initTime\":{$gte:\"2014-05-12 00:00:00\",$lte:\"2014-05-12 23:59:59\"}}" -o test.txt   
    说明:

    1、集合结构中必须要有时间的域,我的是initTime

    2、-q参数里面放入的是你需要指定的条件

    3、注意-q 最外层的是双引号,而里面的双引号都加上转义符“\”

    4、以此类推,如果集合结构中有性别,则可指定性别导出;有年龄,则可指定年龄导出...

    5、客户端同样可以导出服务器数据,格式:--host 192.168.100.109 --port 27017

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值