问题
使用MongoDB处理导出数据时,想增加数据过滤操作。
例如:导出所有isGirl为true的所有数据。
分析
在mongoexport说明文档中找到了query字段和queryFile字段,用来进行数据查询匹配导出。
query字段 后面直接跟 json格式数据。
queryFile字段 后面跟 存储json数据的文件路径。
注意:query后的json数据一定要注意双引号的转义!
解决
1、先直接导出数据表中所有数据做为对比:
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字段进行数据过滤
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字段进行过滤:
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!搞定!