Mongo导入导出

一 导出工具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)节点拖垮,因为这会导致全量同步导致主节点崩溃,所以要避免生产环境中大数据量的导入。正确的做法是先建立单点,导入,之后再建立副本集。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页