美文网首页
mongoexport导出查询数据(附:Linux与Window

mongoexport导出查询数据(附:Linux与Window

作者: Rollan | 来源:发表于2019-11-21 15:03 被阅读0次

mongoDB安装好之后,自带数据导出工具mongoexport。位置在安装目录下的bin文件里面。

使用方法:

cd 进入bin文件夹后直接输入mongoexport指令以及相应参数


image.png

导出数据为csv文件:

mongoexport --host "host(ip or name):port" --ssl --sslCAFile C:\software\mongoDB\ca.cer -u userName -p  password --db dbName --collection script_session --query "{\"application.core_data.session_id\":{\"$gt\":300000},\"application.other_data.need_analysis.maps_search_id\":{\"$ne\":\"\"},\"application.other_data.need_analysis.maps_search_id\":{\"$ne\":null}}" -f _id,"application.core_data.session_id","application.other_data.need_analysis.maps_search_id"  --limit 10 --type=csv --out scriptSession.csv

导出数据为json文件:

mongoexport --host "host(ip or name):port" --ssl --sslCAFile C:\software\mongoDB\ca.cer -u userName -p  password --db dbName --collection script_session --query "{\"application.core_data.session_id\":{\"$gt\":300000},\"application.other_data.need_analysis.maps_search_id\":{\"$ne\":\"\"},\"application.other_data.need_analysis.maps_search_id\":{\"$ne\":null}}"  --limit 10 --out scriptSession.json

其中用到的参数有:

  1. --host(-h): 要连接的数据库所在机器ip或hostname,用‘:’隔开带上端口号
  2. --port(-p): 端口号也可以和host分开写,类似这样 :-h 127.0.0.1 -p 80
  3. --ssl: 连接的mongoDB要是是enable ssl的就要带上这个参数
  4. --sslCAFile: 用于连接数据库时安全验证的证书path
  5. --username(-u): 连接数据库用户名
  6. --password(-p): 连接数据库密码
  7. --db(-d): 要连接的数据库名称
  8. --collection(-c):要连接的collection名称
  9. --query(-q): 导出数据查询条件(非必写,不写就默认导出全collection)(这个windows和linux有一点点写法上的差距,一定要注意)
  10. --fields(-f): 想要导出的数据字段 (当导出文件为csv格式时必写)
  11. --limit: 导出的数据条数(非必写)
  12. --type:设置导出文件类型(非必写,默认值为json。可选csv或json)
  13. --out(-o): 导出文件位置
--query(-q):
(1) windows

windows上执行要注意内外都带双引号“,如果用到”$ne”这类查询,要给$ne这种符号带上双引号,并且所有内部双引号带上转义符“\”例如:

--query "{\"application.session_id\":{\"$gt\":300000},\"application.other_data.maps_search_id\":{\"$ne\":\"\"}}"

window上如果“$ne”这种符号查询不带双引号,会报错:invalid character '$'
window上如果外部用单引号,会报错: is not valid JSON: json: cannot unmarshal string into Go value of type map[string]interface {}

(2) Linux

如果是在linux上执行就简单多了,外部是单引号‘,内部是双引号:

--query '{"application.session_id":{$gt:300000},"application.other_data.maps_search_id":{$ne:""}}'

相关文章

网友评论

      本文标题:mongoexport导出查询数据(附:Linux与Window

      本文链接:https://www.haomeiwen.com/subject/jictwctx.html