MongoDB数据库导出

拜拜、爱过 提交于 2019-11-30 01:56:17
    

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

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!