说明:
1、我的方式是按照指定字段满足条件搜索,先把这些条件按行存放在一个文本文件中
2、然后使用shell读取这个文件,每读取一个条件就做导出,保存到指定位置,并且按照条件给导出文件命名方便归类
3、我的导出csv文件和分类条件文件都保存在脚本当前执行位置的exportcsv目录,请先创建该目录
4、然后创建types文件,里面存放你的mongo查询条件,我这里仅仅是一个参数变量,看一下
I A1
I A2
I A3
I B4b
I B4c
I B4a
II C5b
II C5a
II C6a
II C6c
II C6b
5、然后在exportcsv目录外面创建xxx.sh的脚本文件,拷贝修改合适mongo的导出语句。给sh脚本添加权限后运行即可。
多的不说,看代码:
#!/bin/bash
#中文注释. 这是用作导出nsii2018表中物种的按dirtype分区,导出数据保存到/${home}/exportcsv/
#ps. this is use to export nsii2018's species all group by type,it's will saved to dir /${home}/exportcsv/
#define dir
workdir=$(cd `dirname $0`; pwd)
csvdir="${workdir}/exportcsv/"
typefile="${csvdir}types"
#change to mongodb home
cd /mnt/zwsdata/mongodb/bin/
#forin
while read line
do
#mongoexport statement
./mongoexport -h 127.0.0.1 --port 88 -u root -p xxxpwd -d zwsdb -c nsii2018 --type csv -q {"dirtype":"/^${line}/"} -f "id,zhName,family,tookDate,tookDir,gps,pageUrl,dirname,dircounty,dirtype" -o "${csvdir}${line}.csv"
done < "${typefile}"
具体mongoexport的导出参数就不做解释了