3.导出数据
MongoDB中的mongoexport工具可以把一个库中的collection导出成JSON格式或CSV格式的文件。可以通过指定的内置参数导出数据项,当然导出的时候可以排序和指定条件。
查看mongo信息,安装位置/启动方法等
$ brew info mongo
mac 采用brew安装,位置/usr/local/Cellar/mongodb, 版本可能不同,依据查看的信息即可找到.
$ cd /usr/local/Cellar/mongodb/3.4.0/bin $ ls bsondump mongodump mongoimport mongorestore mongotop mongo mongoexport mongooplog mongos mongod mongofiles mongoperf mongostat
比如我们查看mongoexport的使用方法
#即可 $ ./mongoexport --help ....
3.1 语法
mongoexport -h dbhost -d dbname -c collectionName -o output
-h arg 主机 --port arg 端口 -u arg 用户名 -p arg 密码 -d arg 数据库 -c arg 集合 -f arg 字段名 逗号隔开 -q arg 查询条件 json格式 --csv 导出csv格式 -o arg 导出的文件名
3.2 实例一[json格式]
导出test数据库中的users集合,格式默认为json
$ mongoexport -d test -c users -o /Users/51testing/Desktop/users 2017-03-30T10:24:03.147+0800 connected to: localhost 2017-03-30T10:24:03.147+0800 exported 4 records
注意事项
can not use --fields when input type is JSON
3.3 实例二[csv格式]
如果我们需要导出CSV格式的数据,则需要使用–csv参数,具体如下所示:
CSV定义
CSV(逗号分隔值文件格式): 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。 纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔; 每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。
导出test数据库中的users集合中的"name,age"字段, 中间不可有空格
$ mongoexport -d test -c users --type=csv -f "name,age" -o /Users/51testing/Desktop/user_csv1 2017-03-30T10:40:19.909+0800 connected to: localhost 2017-03-30T10:40:19.909+0800 exported 4 records
脑洞�----怎么全部导出所有字段????
答案: 老实点, 一个个写吧.
3.4 实例三[添加query]
导出test数据库中的users集合中的"name,age"字段, 中间不可有空格, 并且只筛选age大于20的数据
BWF-huanghaowei:bin 51Code$ mongoexport -d test -c users --type=csv -f "name,age" -q '{age:{$gt: 20}}' -o /Users/51testing/Desktop/user_csv2 2017-03-30T11:06:53.023+0800 connected to: localhost2017-03-30T11:06:53.047+0800 exported 1 record
结果如下,满足以上的需求
name,age lisi,29