数据导出 mongoexport
假设库里有一张user表,里面有2条记录,我们要将它导出
1 2 3 4 5
| > 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 }
|
1.常用导出方法
1 2 3 4 5 6
| [root@localhost bin] connected to: 127.0.0.1 exported 2 records [root@localhost bin] { "_id" : { "$oid" : "4f81a4a1779282ca68fd8a5a" }, "uid" : 2, "username" : "Jerry", "age" : 100 } { "_id" : { "$oid" : "4f844d1847d25a9ce5f120c4" }, "uid" : 1, "username" : "Tom", "age" : 25 }
|
参数说明:
1 2 3
| -d 指明使用的库, 本例中为” my_mongodb” -c 指明要导出的表, 本例中为”user” -o 指明要导出的文件名, 本例中为”user.dat”
|
从上面可以看到导出的方式使用的是JSON 的样式
2.导出CSV格式的文件
1 2 3 4 5 6 7
| [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
|
参数说明:
1 2
| -csv 指要要导出为csv格式 -f 指明需要导出哪些列
|
更详细的用法可以 mongoexport -help
来查看
数据导入mongoimport
在上例中我们讨论的是导出工具的使用,那么本节将讨论如何向表中导入数据
1.导入JSON 数据
我们先将表user 删除掉,以便演示效果
1 2 3 4
| > db.user.drop(); true > show collections; system.indexes
|
然后导入数据
1 2 3
| [root@localhost bin]# ./mongoimport -d my_mongodb -c user user.dat connected to: 127.0.0.1 imported 2 objects
|
可以看到导入数据的时候会隐式创建表结构
2.导入CSV数据
我们先将表user 删除掉,以便演示效果
1 2 3 4
| > db.user.drop(); true > show collections; system.indexes
|
然后导入数据
1 2 3 4
| [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
|
参数说明:
1 2 3
| -type 指明要导入的文件格式 -headerline 批明不导入第一行,因为第一行是列名 -file 指明要导入的文件路径
|
注意:
CSV格式良好,主流数据库都支持导出为CSV的格式,所以这种格式非常利于异构数据迁移。