数据导出 mongoexport

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

/test/mongodb/bin/mongo
use wxdata

switched to db wxdata

db.apachelog.find();

{ "_id" : ObjectId("53993357e0e73ac14b29da8a"), "host" : "66.249.69.194", "method" : "GET", "uri" : "/uploads/yaopinimg/2013012415323219.jpg", "httpstatus" : 200, "size" : 7428, "agent" : "Googlebot-Image/1.0", "status" : 0 }

1 常用导出方法

/test/mongodb/bin/mongoexport -d wxdata -c apachelog -o apachelog.dat

connected to: 127.0.0.1
exported 2 records

cat apachelog.dat

{ "_id" : ObjectId("53993357e0e73ac14b29da8a"), "host" : "66.249.69.194", "method" : "GET", "uri" : "/uploads/yaopinimg/2013012415323219.jpg", "httpstatus" : 200, "size" : 7428, "agent" : "Googlebot-Image/1.0", "status" : 0 }

参数说明:
-d 指明使用的库, 本例中为"wxdata"
-c 指明要导出的表, 本例中为"apachelog"
-o 指明要导出的文件名, 本例中为"apachelog.dat"
从上面可以看到导出的方式使用的是JSON 的样式.

2 导出CSV格式的文件

/test/mongodb/bin/mongoexport -d wxdata -c apachelog --csv -f host,time,method -o apachelog_csv.dat

connected to: 127.0.0.1
exported 2 records

cat apachelog_csv.dat

host,time,method
"66.249.69.194","12/Jun/2014:12:57:59","GET"
参数说明:
--csv 指要要导出为csv 格式
-f 指明需要导出哪些例

3.导出执行查询的结果

/test/mongodb/bin/mongoexport -d wxdata -c apachelog -q '{httpstatus:404}' -o apachelog.dat

参数说明:
-q 指明过滤条件,这里是过滤出httpstatus等于404的记录。

更详细的用法可以 mongoexport –help 来查看

数据导入mongoimport

1 导入JSON 数据
我们先将表apachelog 删除掉,以便演示效果

db.apachelog.drop();

true
show collections;
system.indexes

然后导入数据

/test/mongodb/bin/mongoimport -d wxdata -c apachelog apachelog.dat

connected to: 127.0.0.1
imported 1 objects

导入数据的时候会隐式创建表结构

2 导入CSV数据

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

db.apachelog.drop();

true
show collections;
system.indexes

然后导入数据

/test/mongodb/bin/mongoimport -d wxdata -c apachelog --type csv --headerline --file apachelog_csv.dat

connected to: 127.0.0.1
imported 1 objects

参数说明:
--type 指明要导入的文件格式
--headerline 批明不导入第一行,因为第一行是列名
--file 指明要导入的文件路径
注意:
CSV 格式良好,主流数据库都支持导出为CSV 的格式,所以这种格式非常利于异构数据迁移

数据备份mongodump

用mongodump 来做MongoDB 的库或表级别的备份

备份wxdata 数据库

/test/mongodb/bin/mongodump -d wxdata

connected to: 127.0.0.1
DATABASE: wxdata to dump/wxdata
wxdata.system.indexes to dump/wxdata/system.indexes.bson
1 objects
wxdata.apachelog to dump/wxdata/apachelog.bson
2 objects

此时会在当前目录下创建一个dump 目录,用于存放备份出来的文件
也可以指定备份存放的目录,

/test/mongodb/bin/mongodump -d wxdata -o wxdata_dump

connected to: 127.0.0.1
DATABASE: wxdata to wxdata_dump/wxdata
wxdata.system.indexes to
wxdata_dump/wxdata/system.indexes.bson
1 objects
wxdata.apachelog to wxdata_dump/wxdata/apachelog.bson
2 objects

这个例子中将备份的文件存在了当前目录下的wxdata_dump 目录下

数据恢复mongorestore

由于刚刚已经做了备份,所以我们先将库wxdata 删除掉

use wxdata

switched to db wxdata
db.dropDatabase()
{ "dropped" : "wxdata", "ok" : 1 }
show dbs
admin (empty)
local (empty)
test (empty)

接下来我们进行数据库恢复

/test/mongodb/bin/mongorestore -d wxdata wxdata_dump/*

connected to: 127.0.0.1
Wed Apr 11 00:03:03 wxdata_dump/wxdata/apachelog.bson
Wed Apr 11 00:03:03 going into namespace [wxdata.apachelog]
Wed Apr 11 00:03:03 2 objects found
Wed Apr 11 00:03:03 wxdata_dump/wxdata/system.indexes.bson
Wed Apr 11 00:03:03 going into namespace [wxdata.system.indexes]
经验证数据库又回来了,其实要是想恢复库,也大可不必先删除wxdata 库,只要指
明--drop 参数,就可以在恢复的时候先删除表然后再向表中插入数据.

mongodb备份恢复,数据导入导出的更多相关文章

  1. Linux下mongodb安装及数据导入导出教程

    Linux下mongodb安装及数据导入导出教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 一.Linux下mongodb安装的一般步骤 1 ...

  2. MySQL 备份恢复(导入导出)单个 innodb表

    MySQL 备份恢复单个innodb表呢,对于这种恢复我们我们很多朋友都不怎么了解了,下面一起来看一篇关于MySQL 备份恢复单个innodb表的教程 在实际环境中,时不时需要备份恢复单个或多个表(注 ...

  3. MySQL5.7.18 备份、Mysqldump,mysqlpump,xtrabackup,innobackupex 全量,增量备份,数据导入导出

    粗略介绍冷备,热备,温暖,及Mysqldump,mysqlpump,xtrabackup,innobackupex 全量,增量备份 --备份的目的 灾难恢复:意外情况下(如服务器宕机.磁盘损坏等)对损 ...

  4. MongoDB学习(三)数据导入导出及备份恢复

    这几天想着公司要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下 ...

  5. python 全栈开发,Day126(创业故事,软件部需求,内容采集,显示内容图文列表,MongoDB数据导入导出JSON)

    作业讲解 下载代码: HBuilder APP和flask后端登录 链接:https://pan.baidu.com/s/1eBwd1sVXTNLdHwKRM2-ytg 密码:4pcw 如何打开APP ...

  6. 软件部需求,内容采集,显示内容图文列表,MongoDB数据导入导出JSON

    全局变量 由于多个html页面,需要引用同一个变量.这个时候,需要定义一个全局变量!如何定义呢? 默认包含了mui的html文件都导入mui.js文件.那么将变量写在mui.js中,就可以实现所有页面 ...

  7. 010.MongoDB备份恢复

    一 MongoDB备份 1.1 备份概述 mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoi ...

  8. oracle数据库数据导入导出步骤(入门)

    oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...

  9. MySQL多线程数据导入导出工具Mydumper

    http://afei2.sinaapp.com/?p=456 今天在线上使用mysqldump将数据表从一个库导入到另外一个库,结果速度特别慢,印象中有个多线程的数据导入导出工具Mydumper,于 ...

随机推荐

  1. 51 Nod 1791 合法括号子段【分治+字符串】

    1791 合法括号子段 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 有一个括号序列,现在要计算一下它有多少非空子段是合法括号序列. 合法括号序列的定义是: 1. ...

  2. C++ STL之min_element()与max_element()(取容器中的最大最小值)

    min_element()和max_element 头文件:#include<algorithm> 作用:返回容器中最小值和最大值.max_element(first,end,cmp);其 ...

  3. exit(0)与exit(1),return三者区别(详解)

    exit(0):正常运行程序并退出程序: exit(1):非正常运行导致退出程序: return():返回函数,若在主函数中,则会退出函数并返回一值. 详细说: 1. return返回函数值,是关键字 ...

  4. [bzoj1273] [BeiJingWc2008]序列

    一开始想拆位..但显然没法应对进位啊什么的. 所以维护每一个长度的后缀. 查询有多少个a&2^i>0,也就是长度为(i+1)的后缀里,值为2^i...2^(i+1)-1的数有多少个. 前 ...

  5. c++(数据选择)

    在数学中,有一些数据选择的内容.举个例子来说,有这样一组数据:1.2.3.4.现在我们打算从中挑选出1个数据,那么有几种选择呢?结果应该是1.2.3.4:那么如果挑选2个数据呢,怎么选呢?那么结果应该 ...

  6. 解决JSONObject.fromObject数字为null时被转换为0

    在使用JSONObject.fromObject的时候会遇到一种情况就是当对象的某一个Double型或Integer型的属性为空的时候,转JSON的时候会变成0.当一个布尔型的属性为空的时候,转JSO ...

  7. docker创建ceph集群

    背景 Ceph官方现在提供两类镜像来创建集群,一种是常规的,每一种Ceph组件是单独的一个镜像,如ceph/daemon.ceph/radosgw.ceph/mon.ceph/osd等:另外一种是最新 ...

  8. PLSQL 注册码

    注册码:Product Code:4t46t6vydkvsxekkvf3fjnpzy5wbuhphqzserial Number:601769 password:xs374ca 本人版本 Versio ...

  9. Spark算子--map和flatMap

    map和flatMap--Transformation类算子 代码示例 result  

  10. python_百文买百鸡问题

    百文买百鸡问题 -- 不定方程 -- 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,如何买? -- 列出方程式 x + y + z = 100 5x + 3y + z/3 ...