您的位置:首页 > 运维架构 > Shell

MONGO 删除制定时间前 的shell 脚本 模版

2016-05-04 14:28 387 查看
MG_DB_NAME=MONGDBNAME
UNAME=sa
UPWD=XXX
DEL_COUNT=0
LIMIT_TIME="2017-01-10 00:00:00"

a=`/usr/local/mongodb306/bin/mongo 127.0.0.1:47017/$MG_DB_NAME    -u $UNAME -p $UPWD --authenticationDatabase admin --quiet --eval "db.getCollectionNames()"`;

OLD_IFS=”$IFS”
IFS=”,”
arr=($a)
IFS=”$OLD_IFS”
for currCollName in ${arr[@]}
do
#############################

for((i=0;i>=0;i++))
do
objectid=`/usr/local/mongodb306/bin/mongo 127.0.0.1:47017/$MG_DB_NAME    -u $UNAME -p $UPWD --authenticationDatabase admin --quiet --eval "printjson(db.$currCollName.findOne({"TDDateTime":{\\$lt:\"$LIMIT_TIME\"}},{"_id":1}))"`;

#echo $currCollName

if [ ! -n "$objectid" ]; then
echo "null exit1"
break;
elif [ "$objectid" = "null" ];then
echo "null exit2"
break;
else
/usr/local/mongodb306/bin/mongo 127.0.0.1:47017/$MG_DB_NAME    -u $UNAME -p $UPWD --authenticationDatabase admin --quiet --eval "db.$currCollName.remove($objectid)";
let DEL_COUNT+=1;
echo $objectid curr_coll:$currCollName delete count:$DEL_COUNT;

fi

done

##################################
done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: