数据的导出

• 语法格式 1
– #mongoexport [--host IP 地址 --port 端口 ]
-d 库名 -c 集合名 -f 字段名 1, 字段名 2
--type=csv
> 目录名 / 文件名 .csv

[root@host51 ~]# mongoexport  --help
[root@host51 ~]# mkdir /mbak
[root@host51 ~]# mongoexport  --host 192.168.4.51 --port 27051 -d ddsdb -c c2 -f name,school --type=csv > /mbak/c2.csv
2018-08-01T15:47:11.207+0800 connected to: 192.168.4.51:27051
2018-08-01T15:47:11.208+0800 exported 14 records
[root@host51 ~]# cat  /mbak/c2.csv 
name,school
bob,tarena
zhangsan,danei
张三,达外
jack,tarena
lilei,tarena
xiaoqiang,
tom,
tom,
php,
jj,
kk,
,
,
,

语法格式 2
– #mongoexport --host IP 地址 --port 端口
-d 库名 -c 集合名 -q ‘{ 条件 }’ -f 字段名 1 ,字段名 2  --type=csv > 目录名 / 文件名 .csv
注意:导出为 csv 格式必须使用 -f 指定字段名列表 !!!

[root@host51 ~]# mongoexport  --host 192.168.4.51 --port 27051 -d ddsdb -c c2 --type=json > /mbak/c2.json
2018-08-01T15:51:48.273+0800 connected to: 192.168.4.51:27051
2018-08-01T15:51:48.275+0800 exported 14 records
[root@host51 ~]# cat /mbak/c2.json 
{"_id":{"$oid":"5b61513d32bc8e678acd6f3f"},"name":"bob","school":"tarena"}
{"_id":{"$oid":"5b61519132bc8e678acd6f40"},"name":"zhangsan","school":"danei"}
{"_id":{"$oid":"5b6151b132bc8e678acd6f41"},"name":"张三","school":"达外"}
{"_id":{"$oid":"5b61526b32bc8e678acd6f42"},"name":"jack","school":"tarena","single":false}
{"_id":{"$oid":"5b6152ea32bc8e678acd6f43"},"name":"lilei","school":"tarena","single":false,"pay":null}
{"_id":{"$oid":"5b61553632bc8e678acd6f44"},"name":"xiaoqiang","like":["gril","eat","piao","sleep"]}
{"_id":{"$oid":"5b61559c32bc8e678acd6f45"},"name":"tom","xf":195}
{"_id":{"$oid":"5b6155ef32bc8e678acd6f46"},"name":"tom","xf":{"$numberLong":"4918"}}
{"_id":{"$oid":"5b61571c32bc8e678acd6f47"},"name":"php","code":{"$code":"function (){}"},"like":100000.0}
{"_id":{"$oid":"5b61590132bc8e678acd6f49"},"name":"jj","stu_id":{"$oid":"5b61590132bc8e678acd6f48"},"class":"nsd1804"}
{"_id":{"$oid":"5b6159bd32bc8e678acd6f4a"},"name":"kk","sr":"Wed Aug 01 2018 14:57:01 GMT+0800 (CST)"}
{"_id":{"$oid":"5b615d4e32bc8e678acd6f4b"},"ywzd":{"writer":"dmy","pay":68.0,"vers":"v2"}}
{"_id":{"$oid":"5b615e2d32bc8e678acd6f4c"},"tarena":{"address":"beijing","tell":8.888888e+06,"person":"harry"}}
{"_id":{"$oid":"5b615f4832bc8e678acd6f4d"},"jbname":"shell","rcode":{"$regex":".$","$options":""}}
[root@host51 ~]# 

数据导入:
[root@host51 ~]# mongoimport  --help
语法格式 1
– #mongoimport –host IP 地址 – port 端口   -d 库名  – c 集合名   --type=json       目录名 / 文件名 .json

> show dbs
admin   0.000GB
config  0.000GB
ddsdb   0.000GB
local   0.000GB

[root@host51 ~]# mongoimport  --host 192.168.4.51  --port 27051 -d gamedb -c col --type=json  /mbak/c2.json 
2018-08-01T16:22:54.238+0800 connected to: 192.168.4.51:27051
2018-08-01T16:22:54.457+0800 imported 14 documents

[root@host51 ~]# mongoimport  --host 192.168.4.51  --port 27051 -d gamedb -c stu --type=csv  /mbak/c2.csv 
2018-08-01T16:37:03.316+0800 error validating settings: must specify --fields, --fieldFile or --headerline to import this file type
2018-08-01T16:37:03.316+0800 try 'mongoimport --help' for more information

[root@host51 ~]# mongoimport  --host 192.168.4.51  --port 27051 -d gamedb -c stu  --headerline --type=csv  /mbak/c2.csv 
2018-08-01T16:38:18.720+0800 connected to: 192.168.4.51:27051
2018-08-01T16:38:18.804+0800 imported 14 documents

[root@host51 ~]# mongoimport  --host 192.168.4.51  --port 27051 -d gamedb -c tea -f name,school  --type=csv  /mbak/c2.csv 
2018-08-01T16:40:04.868+0800 connected to: 192.168.4.51:27051
2018-08-01T16:40:05.019+0800 imported 15 documents

• 语法格式 2
– #mongoimport –host IP 地址 – port 端口
-d 库名 – c 集合名
--type=csv --headerline [--drop] 目录名 / 文件名.csv

> db.tea.count()
30

[root@host51 ~]# mongoimport  --host 192.168.4.51  --port 27051 -d gamedb -c tea -f name,school  --type=csv --drop  /mbak/c2.csv 
2018-08-01T16:41:44.333+0800 connected to: 192.168.4.51:27051
2018-08-01T16:41:44.334+0800 dropping: gamedb.tea
2018-08-01T16:41:44.454+0800 imported 15 documents

> db.tea.count()
15

练习:
把系统文件(/etc/passwd) 存储到mongodb数据库里的userdb的coluser的集合里
> db.coluser.find()
{ "_id" : ObjectId("5b617485df5cbc631e0dc4bc"), "name" : "yaya", "password" : "x", "uid" : 1, "gid" : 1, "comment" : "my gril", "homedir" : "/home/yaya", "shell" : "/bin/bash" }

[root@host51 ~]# mongoexport  --host 192.168.4.51 --port 27051 -d userdb -c coluser -f name,password,uid,gid,comment,homedir,shell --type=csv  >  /mbak/coluser.csv
2018-08-01T16:54:08.030+0800 connected to: 192.168.4.51:27051
2018-08-01T16:54:08.032+0800 exported 1 record
[root@host51 ~]# cat  /mbak/coluser.csv 
name,password,uid,gid,comment,homedir,shell
yaya,x,1,1,my gril,/home/yaya,/bin/bash

把 /etc/password/弄成/mbak/coluser.csv 一样的文件格式:
[root@host51 ~]# cp /etc/passwd /mbak/
[root@host51 ~]# cd /mbak/
[root@host51 mbak]# ls
c2.csv  c2.json  c3.json  coluser.csv  passwd
[root@host51 mbak]# sed -i 's/:/,/g' passwd 
[root@host51 mbak]# head -2 passwd 
root,x,0,0,root,/root,/bin/bash
bin,x,1,1,bin,/bin,/sbin/nologin

[root@host51 mbak]# sed -i '$r passwd' coluser.csv 
[root@host51 mbak]# head  -5 coluser.csv 
name,password,uid,gid,comment,homedir,shell
yaya,x,1,1,my gril,/home/yaya,/bin/bash
root,x,0,0,root,/root,/bin/bash
bin,x,1,1,bin,/bin,/sbin/nologin

把文件导入到库里:
[root@host51 mbak]# mongoimport  --host 192.168.4.51 --port 27051 -d userdb -c coluser --headerline --drop --type=csv /mbak/coluser.csv 
2018-08-01T17:08:36.078+0800 connected to: 192.168.4.51:27051
2018-08-01T17:08:36.078+0800 dropping: userdb.coluser
2018-08-01T17:08:36.240+0800 imported 41 documents

> show dbs
admin   0.000GB
config  0.000GB
ddsdb   0.000GB
gamedb  0.000GB
local   0.000GB
userdb  0.000GB
> use userdb
switched to db userdb
> show tables
coluser
> db.coluser.find()
{ "_id" : ObjectId("5b6178943dd57015866eb75c"), "name" : "yaya", "password" : "x", "uid" : 1, "gid" : 1, "comment" : "my gril", "homedir" : "/home/yaya", "shell" : "/bin/bash" }
{ "_id" : ObjectId("5b6178943dd57015866eb75d

数据备份
• 备份数据所有库到当前目录下的 dump 目录下     //备份所有库所有表
# mongodump [ --host ip 地址 --port 端口 ]

[root@host51 mbak]# mongodump  --host 192.168.4.51 --port 27051
[root@host51 mbak]# ls dump/             //在当前目录生成dump目录
admin  ddsdb  gamedb  userdb

• 备份时指定备份的库和备份目录
# mongodump [ --host ip 地址 --port 端口 ] -d 数据库名 -c 集合名 -o 目录

目录无需事先创建 备份时指定即可!!! 
[root@host51 mbak]# mongodump  --host 192.168.4.51 --port 27051  -d gamedb -c col
2018-08-01T17:37:20.674+0800 writing gamedb.col to 
2018-08-01T17:37:20.675+0800 done dumping gamedb.col (14 documents)

[root@host51 mbak]# ls dump/gamedb/
col.bson           col.metadata.json  stu.bson           stu.metadata.json  tea.bson           tea.metadata.json

[root@host51 mbak]# mongodump  --host 192.168.4.51 --port 27051  -d gamedb -c stu  /gamedbdir
2018-08-01T17:34:02.924+0800 positional arguments not allowed: [/gamedbdir]
2018-08-01T17:34:02.924+0800 try 'mongodump --help' for more information

[root@host51 mbak]# mkdir  /gamedbdir
[root@host51 mbak]# mongodump  --host 192.168.4.51 --port 27051  -d gamedb -c stu  /gamedbdir
2018-08-01T17:34:46.646+0800 positional arguments not allowed: [/gamedbdir]
2018-08-01T17:34:46.646+0800 try 'mongodump --help' for more information

[root@host51 mbak]# mongodump  --host 192.168.4.51 --port 27051  -d gamedb -c stu  -o /bake
2018-08-01T17:36:10.018+0800 writing gamedb.stu to 
2018-08-01T17:36:10.020+0800 done dumping gamedb.stu (14 documents)
[root@host51 mbak]# ls  /bake/
gamedb

[root@host51 mbak]#  ls /bake/gamedb/
stu.bson  stu.metadata.json

• 查看 bson 文件内容
#bsondump ./dump/bbs/t1.bson

[root@host51 mbak]# bsondump  ./dump/ddsdb/c2.bson 
{"_id":{"$oid":"5b61513d32bc8e678acd6f3f"},"name":"bob","school":"tarena"}
{"_id":{"$oid":"5b61519132bc8e678acd6f40"},"name":"zhangsan","school":"danei"}
{"_id":{"$oid":"5b6151b132bc8e678acd6f41"},"name":"张三","school":"达外"}
{"_id":{"$oid":"5b61526b32bc8e678acd6f42"},"name":"jack","school":"tarena","single":false}
{"_id":{"$oid":"5b6152ea32bc8e678acd6f43"},"name":"lilei","school":"tarena","single":false,"pay":null}
{"_id":{"$oid":"5b61553632bc8e678acd6f44"},"name":"xiaoqiang","like":["gril","eat","piao","sleep"]}
{"_id":{"$oid":"5b61559c32bc8e678acd6f45"},"name":"tom","xf":195}
{"_id":{"$oid":"5b6155ef32bc8e678acd6f46"},"name":"tom","xf":{"$numberLong":"4918"}}
{"_id":{"$oid":"5b61571c32bc8e678acd6f47"},"name":"php","code":{"$code":"function (){}"},"like":100000.0}
{"_id":{"$oid":"5b61590132bc8e678acd6f49"},"name":"jj","stu_id":{"$oid":"5b61590132bc8e678acd6f48"},"class":"nsd1804"}
{"_id":{"$oid":"5b6159bd32bc8e678acd6f4a"},"name":"kk","sr":"Wed Aug 01 2018 14:57:01 GMT+0800 (CST)"}
{"_id":{"$oid":"5b615d4e32bc8e678acd6f4b"},"ywzd":{"writer":"dmy","pay":68.0,"vers":"v2"}}
{"_id":{"$oid":"5b615e2d32bc8e678acd6f4c"},"tarena":{"address":"beijing","tell":8.888888e+06,"person":"harry"}}
{"_id":{"$oid":"5b615f4832bc8e678acd6f4d"},"jbname":"shell","rcode":{"$regex":".$","$options":""}}
2018-08-01T17:41:33.663+0800 14 objects found

数据恢复:
• 语法格式
– mongorestore --host IP 地址 --port 端口 -d 数据库名 [ -c 集合名 ] 备份目录名

模拟数据丢失:
方法一:
> db.stu.remove({})
WriteResult({ "nRemoved" : 14 })

[root@host51 mbak]# mongorestore  --host 192.168.4.51 --port 27051 -d gamedb  -c stu /bake/gamedb/stu.bson 
2018-08-01T17:46:20.073+0800 checking for collection data in /bake/gamedb/stu.bson
2018-08-01T17:46:20.074+0800 reading metadata for gamedb.stu from /bake/gamedb/stu.metadata.json
2018-08-01T17:46:20.075+0800 restoring gamedb.stu from /bake/gamedb/stu.bson
2018-08-01T17:46:20.137+0800 no indexes to restore
2018-08-01T17:46:20.137+0800 finished restoring gamedb.stu (14 documents)
2018-08-01T17:46:20.137+0800 done

> db.stu.count()
14
> db.stu.find()

方法二:  //重新建立一个新的集合
[root@host51 mbak]# mongorestore  --host 192.168.4.51 --port 27051 -d gamedb  -c regtab  /bake/gamedb/stu.bson 
2018-08-01T17:47:47.238+0800 checking for collection data in /bake/gamedb/stu.bson
2018-08-01T17:47:47.240+0800 reading metadata for gamedb.regtab from /bake/gamedb/stu.metadata.json
2018-08-01T17:47:47.332+0800 restoring gamedb.regtab from /bake/gamedb/stu.bson
2018-08-01T17:47:47.395+0800 no indexes to restore
2018-08-01T17:47:47.395+0800 finished restoring gamedb.regtab (14 documents)
2018-08-01T17:47:47.395+0800 done

> show tables
col
regtab
stu
tea


方法三: //建立一个新的库和新的集合
[root@host51 mbak]# mongorestore  --host 192.168.4.51 --port 27051 -d buydb  -c regtab   /bake/gamedb/stu.bson 
2018-08-01T17:50:33.832+0800 checking for collection data in /bake/gamedb/stu.bson
2018-08-01T17:50:33.833+0800 reading metadata for buydb.regtab from /bake/gamedb/stu.metadata.json
2018-08-01T17:50:33.926+0800 restoring buydb.regtab from /bake/gamedb/stu.bson
2018-08-01T17:50:33.989+0800 no indexes to restore
2018-08-01T17:50:33.989+0800 finished restoring buydb.regtab (14 documents)
2018-08-01T17:50:33.989+0800 done

> use buydb
switched to db buydb
> show tables
regtab

mongodb数据的导入导出备份恢复_万金油_新浪博客相关推荐

  1. 在线画图工具-CCA与RDA分析_圈圈Bio_新浪博客

    网站:http://www.qplot.cn:3838/sample-apps/006-CCA_RDA/ RDA分析(Redundancy analysis),即冗余分析,对比主成分分析可以发现,其实 ...

  2. 当前电气自动化专业就业形势调查报告 (转载)_史蒂文森sun_新浪博客

    当前电气自动化专业就业形势调查报告  尽早了解本专业的设置及就业情况有助于我们确定自己的发展方向,当竞争工作时,能有更多的优势.为此,本人于2012年2月18日至3月10日进行了调查,通过文献查阅.实 ...

  3. 模电学习心得(转载)_史蒂文森sun_新浪博客

    个人建议:认真分析几个典型电路,主要掌握晶体管的等效模型,以及在电路中怎么等效.其他的都很容易解决了.只要会等效了,模电就是完全是电路的内容.其实一点都不可怕,开始不要太关注乱七八糟的内容,抓住主要的 ...

  4. [转载]R软件包vegan教程 5.1 函数adonis的使用_圈圈Bio_新浪博客

    原文地址:R软件包vegan教程 5.1 函数adonis的使用作者:mateco 5 差异和环境(Dissimilarities and environment) 已经讨论了排序的环境因子解释,和环 ...

  5. 在线画图工具-venn维恩图_圈圈Bio_新浪博客

    网址: http://www.qplot.cn:3838/sample-apps/001-venn/ plot venn 维恩图,也叫文氏图,用于显示元素集合重叠区域的图示.可以表示集合与集合之间的相 ...

  6. Cookie和session的区别以及安全性_小晓_同学__新浪博客

    1.cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据. 2.session其实指的就是访问者从到达某个特定主页到离开为止的那段时间. ...

  7. 解读术_悟sphenic_新浪博客

    一.谈话技巧 西方侦探工作当中,最重要的据说就是解读术.在和对方交谈时,必须听出事情的端倪,否则就将失去当侦探的资格. 掌握解读术,必须要做以下几点: 1 首先,为了取得对方的信任,礼貌的和对方说话. ...

  8. 串管理——鸟友们快来看啊——看清楚点_悟sphenic_新浪博客

    串管理--鸟友们快来看啊--看清楚点 在内存有限的情况下,应当特别注意串的"繁殖".一种常见的做法是使用+操作符,而这往往会带来问题,如果把多个串通过+操作符连接在一起构成一个串, ...

  9. 软件项目开发模式_小晓_同学__新浪博客

    螺旋开发模式:部分模块开发还可以再继续开发别的模块,适合于项目前期需求不确定的情况 对于每一个模块一个个开发:分析.设计.编码.测试.上线: 好处:有效的降低软件项目风险,(做出的产品要尽量满足客户需 ...

  10. Bug管理的流程和几个重点_悟sphenic_新浪博客

    Bug管理的流程和几个重点 前两天谈论的bug管理的问题,大家列举了很多bug跟踪软件,我觉得工具是一部分,但是主要还在bug管理的流程上. 在这些bug管理工具里,bug的一个最重要的属性就是&qu ...

最新文章

  1. JavaMelody开源系统性能监控
  2. 【C++】C/C++系列教程汇总(更新中......)
  3. 利用iPhone下载其他地区的App
  4. Atitit 减少财政支出之减少通讯支出 解决方案attilax总结
  5. paip.提升ASP编程安全性之脚本部件
  6. IBatisNet -- 保护你的配置文件及映射文件信息
  7. JAVA音乐社交平台设计计算机毕业设计Mybatis+系统+数据库+调试部署
  8. 【数据结构课设】家谱管理系统(内附源码)
  9. unity 安卓接入科大讯飞 语音合成
  10. java pdf添加页码_java itext pdf 肿么加页码
  11. 黑猴子的家:Kali Linux + Vmware 15 安装操作系统
  12. 设置网页视频播放倍速
  13. 逆滲透水與蒸餾水最不能喝
  14. python爬虫之爬取网易云音乐的歌曲图片和歌词
  15. 同一设备安装不同版本的Vue脚手架
  16. Linux伪装windows,Ubuntu 一键伪装成Win 10,Kali Linux 2019 kali-undercover软件嫁接;
  17. 中国移动支付报告:领跑全球 前景广阔
  18. 树莓派python离线语音识别_Raspberry Pi
  19. 视频教程-C++socket网络编程--http服务器(支持php)实战教学视频-C/C++
  20. Mac iterm2 中文乱码

热门文章

  1. TeamTalk编译和部署(一)
  2. 谷歌浏览器获取网页元素的xpath
  3. iphone免越狱!使用filza修改设备型号!支持最高ios14.3
  4. 如何使用imp导入dmp文件
  5. oracle导入dmp报20000,imp导入dmp文件报:IMP-00038: 无法转换为环境字符集句柄IMP-00000: 未成功终止导入...
  6. Android详细刷机教程
  7. 草图大师SketchUp2016下载和安装教程
  8. 码栈使用手册(二)---界面介绍
  9. 上海大华条码称代码_上海大华条码秤简易说明书
  10. [C]我使用蜂鸣器敲了一首《极乐净土》