问题
使用MongoDB处理导出数据时,想增加数据过滤操作。
例如:导出所有isGirl 为true的所有数据。
分析
在mongoexport说明文档中找到了query 字段和queryFile字段,用来进行数据查询匹配导出。
query 字段 后面直接跟 json 格式数据。
queryFile 字段 后面跟 存储json数据的文件路径。
注意 :query 后的json 数据一定要注意双引号的转义!
解决
1、先直接导出数据表中所有数据做为对比:
bash
mongoexport --host "127.0.0.1" --port "27017" --authenticatinDatabase "admin" -u admin -p password -d class -c student_info -o \Data\student_info.json
执行结果:141条数据记录
2、使用query字段进行数据过滤
bash
mongoexport --host "127.0.0.1" --port "27017" --authenticatinDatabase "admin" -u admin -p password -d class -c student_info -q "{\"isGirl\":true}" -o \Data\student_info.json
执行结果:61条数据记录
注意 :这里一定要注意双引号的转义 !!不然就会报错无法解析json数据:
3、使用queryFile字段进行数据过滤
先将json 数据存储在txt 文件中:
然后使用queryFile字段进行过滤:
bash
mongoexport --host "127.0.0.1" --port "27017" --authenticatinDatabase "admin" -u admin -p password -d class -c student_info --queryFile "1.txt" -o \Data\student_info.json
执行结果:61条数据记录
那接下来匹配一下isGirl 为false 的数据记录吧:
再次执行查看结果:80条数据记录
ok!搞定!