使用rockmongo怎么导出部分数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用rockmongo怎么导出部分数据相关的知识,希望对你有一定的参考价值。

参考技术A 数据导出:先举个例子作为切入口:
需求:
将test数据库下的things集合中的所有文档导出到D:\mongo_data路径下
D:\mongo\bin>mongoexport -d test -c things -o d:\mongo_data\things.txt
cmd控制台返回导出的相关信息,如下所示
connected to: 127.0.0.1
exported 15 records
检验一下:
去D:\mongo_data找一下是否存在things.txt文件
打开D:\mongo_data\things.txt显示如下:
"_id" : 3
"_id" : "$oid" : "528ec3042e2ec9f2c3cd55de" , "x" : 6, "y" : 0
"_id" : "$oid" : "528ec3042e2ec9f2c3cd55df" , "x" : 6, "y" : 1
"_id" : "$oid" : "528ec3042e2ec9f2c3cd55e0" , "x" : 6, "y" : 2
"_id" : "$oid" : "528ec3042e2ec9f2c3cd55e1" , "x" : 6, "y" : 3
"_id" : "$oid" : "528ec3042e2ec9f2c3cd55e2" , "add" : [ "age" : 21, "name" : "jimvin" , "age" : 22, "name" : "jimvin" , "age" : 23, "name" : "jimvin" , "age" : 23, "name" : "jimvin" ], "x" : 6, "y" : 4
"_id" : "$oid" : "528ec3042e2ec9f2c3cd55e3" , "num" : 55, "x" : 6, "y" : 5
"_id" : "$oid" : "528ec3042e2ec9f2c3cd55e4" , "age" : null, "num" : null, "x" : 6, "y" : 6
"_id" : "$oid" : "528ec3042e2ec9f2c3cd55e5" , "add" : [ "jimvin", "abc", "aaa" ], "num" : "abc", "x" : 6, "y" : 7
"_id" : "$oid" : "528ec3042e2ec9f2c3cd55e6" , "age" : [ 7, 9 ], "name" : "jimvin", "num" : 20, "x" : 6, "y" : 8
"_id" : "$oid" : "528ec3042e2ec9f2c3cd55e7" , "age" : [ 7, 8, 9 ], "name" : "tom", "x" : 10, "y" : 9
"_id" : "$oid" : "5296e6d68378a9afba69af46" , "add" : "age" : 20, "name" : "jimvin" , "name" : "jim", "num" : 10
"_id" : "$oid" : "529eab9552bf5eb74acdb35b" , "name" : "person1", "addr" : "city" : "a", "state" : "d"
"_id" : "$oid" : "529eaba252bf5eb74acdb35c" , "name" : "person1", "addr" : "city" : "b", "state" : "c"
"_id" : "$oid" : "529eabc352bf5eb74acdb35d" , "name" : "person1", "addr" : "city" : "a", "state" : "e"

从例子我们基本都能猜出 mongoexport的命令用法,下面我们再详细分析一下:
* mongoexport --db
简写 mongoexport -d
指定要导出集合所在的数据库
eg:
D:\mongo\bin>mongoexport --db test
或 D:\mongo\bin>mongoexport -d test
或 D:\mongo\bin>mongoexport -db test
注意:
1. 不能单独使用,至少还要指定集合才能导出成功。
否则显示如下错误:
no collection specified!
2. 假如指定的数据库名在MongoDB中是不存在的,也不会报错的。
* mongoexport --collection
简写 mongoexport -c
指定要导出集合的名字
eg:
D:\mongo\bin>mongoexport --collection test
或 D:\mongo\bin>mongoexport -c test
或 D:\mongo\bin>mongoexport -collection test

注意:
这里是可以正常运行起来的,这里MongoDB系统在没指定数据库来源时,默认从test数据 库找相应的集合的,然后把对应的文档输出到cmd控制台上,假如我们指定的集合名在test数据库是不存在的,也不会报错,只是返回“exported 0 records”这样的提示。
* mongoexport --out
简写 mongoexport -o
指定导出数据文件的目录
eg:
D:\mongo\bin>mongoexport --out d:\mongo_data\things.txt
或 D:\mongo\bin>mongoexport -o d:\mongo_data\things.txt
或 D:\mongo\bin>mongoexport -out d:\mongo_data\things.txt
注意:
1. 不能单独使用,至少还要指定集合才能导出成功。
否则显示如下错误:
no collection specified!
2. 文件目录不能写成d:\mongo_data或 d:\mongo_data\或d:\之类的,否则报错如下:
coundn't open [d:\mongo_data]。
一定要带有文件名的(带有后缀的),一般为.txt,.csv,.json,.csv
csv和csv文件:都是常用的数据交互格式,均可以用excell打开。
3. 纯粹D:\mongo\bin>mongoexport --out d:\mongo_data\things.txt这样写,即使我们没指定集合,但系统依然会为我们创建things.txt这个文件的。
在RockMongo 导出test数据库mythings集合会是一个js文件:
如下所示:
/** mythings indexes **/
db.getCollection("mythings").ensureIndex(
"_id": NumberInt(1)
,[

]);
/** mythings indexes **/
db.getCollection("mythings").ensureIndex(
"location": 1,
"name": -1
,[

]);
/** mythings records **/
db.getCollection("mythings").insert(
"_id": ObjectId("529fe7faeef00d1d48b473c0"),
"location": "Guangzhou",
"age": 20,
"name": "j"
);
db.getCollection("mythings").insert(
"_id": ObjectId("529fe808eef00d1d48b473c1"),
"location": "Guangzhou",
"age": 21,
"name": "ji"
);
......

最后,再重申一点,所有导出操作,必须保证在数据库处于正常连接的状态。否则显示:couldn't conncect to [127.0.0.1] couldn't connect to server 127.0.0.1:27017本回答被提问者和网友采纳

MYSQL使用mysqldump导出某个表的部分数据

MySQLdump是MySQL自带的导出数据工具,通常我们用它来导出MySQL中,但是有时候我们需要导出MySQL数据库中某个表的部分数据,这时该怎么办呢?

mysqldump命令中带有一个 --where/-w 参数,它用来设定数据导出的条件,使用方式和SQL查询命令中中的where基本上相同,有了它,我们就可以从数据库中导出你需要的那部分数据了。

命令格式如下:

mysqldump -u用户名 -p密码 数据库名 表名 --where="筛选条件" > 导出文件路径

例子:

从meteo数据库的sdata表中导出sensorid=11 且 fieldid=0的数据到 /home/xyx/Temp.sql 这个文件中

mysqldump -uroot -p123456 meteo sdata --where=" sensorid=11 and fieldid=0" > /home/xyx/Temp.sql


另外你还可以直接导出 文本文件*.txt


mysqldump -uroot -p123456 meteo sdata --where=" sensorid=11 and fieldid=0" > /home/xyx/Temp.txt



///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


以下是 mysqldump 的一些使用参数

备份数据库
#mysqldump 数据库名 >数据库备份名

#mysqldump -A -u用户名 -p密码 数据库名>数据库备份名

#mysqldump -d -A --add-drop-table -uroot -p >xxx.sql


1.导出结构不导出数据

mysqldump -d 数据库名 -uroot -p > xxx.sql

2.导出数据不导出结构

mysqldump -t 数据库名 -uroot -p > xxx.sql

3.导出数据和表结构

mysqldump 数据库名 -uroot -p > xxx.sql

4.导出特定表的结构

mysqldump -uroot -p -B数据库名 --table 表名 > xxx.sql



#mysqldump [OPTIONS] database [tables]

mysqldump支持下列选项:

--add-locks   
在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。   
--add-drop-table   
在每个create语句之前增加一个drop table。   
--allow-keywords   
允许创建是关键词的列名字。这由表名前缀于每个列名做到。   
-c, --complete-insert   
使用完整的insert语句(用列名字)。   
-C, --compress   
如果客户和服务器均支持压缩,压缩两者间所有的信息。   
--delayed   
用INSERT DELAYED命令插入行。   
-e, --extended-insert   
使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)   
-#, --debug[=option_string]   
跟踪程序的使用(为了调试)。   
--help   
显示一条帮助消息并且退出。   
--fields-terminated-by=...   
    
--fields-enclosed-by=...   
    
--fields-optionally-enclosed-by=...   
    
--fields-escaped-by=...   
    
--fields-terminated-by=...   
这些选择与-T选择一起使用,并且有相应的LOAD DATA INFILE子句相同的含义。   
LOAD DATA INFILE语法。   
-F, --flush-logs   
在开始导出前,洗掉在MySQL服务器中的日志文件。   
-f, --force,   
即使我们在一个表导出期间得到一个SQL错误,继续。   
-h, --host=..   
从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。   
-l, --lock-tables.   
为开始导出锁定所有表。   
-t, --no-create-info   
不写入表创建信息(CREATE TABLE语句)   
-d, --no-data   
不写入表的任何行信息。如果你只想得到一个表的结构的导出,这是很有用的!   
--opt   
同--quick --add-drop-table --add-locks --extended-insert --lock-tables。   
应该给你为读入一个MySQL服务器的尽可能最快的导出。   
-pyour_pass, --password[=your_pass]   
与服务器连接时使用的口令。如果你不指定“=your_pass”部分,mysqldump需要来自终端的口令。   
-P port_num, --port=port_num   
与一台主机连接时使用的TCP/IP端口号。(这用于连接到localhost以外的主机,因为它使用 Unix套接字。)   
-q, --quick   
不缓冲查询,直接导出至stdout;使用mysql_use_result()做它。   
-S /path/to/socket, --socket=/path/to/socket   
与localhost连接时(它是缺省主机)使用的套接字文件。   
-T, --tab=path-to-some-directory   
对于每个给定的表,创建一个table_name.sql文件,它包含SQL CREATE 命令,和一个table_name.txt文件,它包含数据。注意:这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作。.txt文件的格式根据--fields-xxx和 --lines--xxx选项来定。  
-u user_name, --user=user_name   
与服务器连接时,MySQL使用的用户名。缺省值是你的Unix登录名。   
-O var=option, --set-variable var=option设置一个变量的值。可能的变量被列在下面。   
-v, --verbose   
冗长模式。打印出程序所做的更多的信息。   
-V, --version   
打印版本信息并且退出。   
-w, --where=‘where-condition‘   
只导出被选择了的记录;注意引号是强制的!   
"--where=user=‘jimf‘" "-wuserid>1" "-wuserid<1"


导入数据:

由于mysqldump导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:

#mysql 数据库名 < 文件名

or:

#show databases;

然后选择被导入的数据库:

#use ***;

#source /tmp/xxx.sql


本文出自 “梦想照进现实” 博客,请务必保留此出处http://lookingdream.blog.51cto.com/5177800/1899915

以上是关于使用rockmongo怎么导出部分数据的主要内容,如果未能解决你的问题,请参考以下文章

为mongodb加用户授权并使用RockMongo进行管理

Mongodb以及rockmongo安装

我想导出MYSQL数据库中的部分数据,该怎么操作?

mongodb rockmongo

Oracle库中截取部分数据导出再导入(含NCLOB数据类型)

九仙mysql_HandlerSocket_rockmongo安装