使用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怎么导出部分数据的主要内容,如果未能解决你的问题,请参考以下文章