一 导出工具mongoexport
1、简介
Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式(类似于表格的形式)的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。
2、参数解析
-h:指明数据库宿主机的IP
-u:指明数据库的用户名
-p:指明数据库的密码
-d:指明数据库的名字
-c:指明collection的名字
-f:指明要导出那些列
-o:指明到要导出的文件名
-q:指明导出数据的过滤条件
3、实例
1)导出user集合中的数据到文件user.dat
./mongoexport -d my_mongodb -c user -o user.dat
2)将foo库中的t1集合导出到json文件
./mongoexport -d foo -c t1 -o /data/t1.json
3)导出CSV格式的数据
./mongoexport -d foo -c t2 --csv -f age,name -o /data/t2.csv
4)指定过滤条件导出数据
./mongoexport -h 10.100.30.130 --port 27017 -d zhongtudao -c hand_result --type=csv -f datetime,url,show_count,click_count -q '{datetime:"20170402"}' -o ./20170402.csv
二 导入工具mongoexport
1、简介
Mongodb中的mongoimport工具可以把一个特定格式文件中的内容导入到指定的collection中。该工具可以导入JSON格式数据,也可以导入CSV格式数据。
2、参数解析
-h:指明数据库宿主机的IP
-u:指明数据库的用户名
-p:指明数据库的密码
-d:指明数据库的名字
-c:指明collection的名字
-f:指明要导入那些列
-type:指明要导入的文件格式
-headerline:指明第一行是列名,不需要导入 -file:指明要导入的文件
3、实例
1)导入JSON数据
./bin/mongoimport -d test -c students students.dat
2)导入CSV格式文件中的内容
./bin/mongoimport -d test -c students --type csv --headerline --file students_csv.dat
三 异常
1、server returned error on SASL authentication step: Authentication failed.
1)原因
数据库实例的用户列表为空
2)解决方法
后面加个参数 –authenticationDatabase admin或者用权限用户操作
四 注意事项
1)mongoimport 执行导入前,新数据库中没有 XX 表一样可以导入成功;
2)mongoexport 和 mongoimport 所需的各个参数输入的先后顺序不严格;
3)对于副本集,mongoexport 的数据导出可以是副本集中的 primary 节点,也可以是 secondary 节点;
4)对于副本集,mongoimport 的数据导入必须是 primary 节点;
5)对于大数据量的导出,用 mongoexport 操作完全不会有生产问题;
6)对于大数据量的导入(超过 500 MB),用 mongoimport 操作的话会很容易将 primary 7)节点拖垮,因为这会导致全量同步导致主节点崩溃,所以要避免生产环境中大数据量的导入。正确的做法是先建立单点,导入,之后再建立副本集。