mongoDB 小脚本总结

本文介绍了一个Shell脚本,用于批量创建下个月每一天的MongoDB集合,并为每个集合建立多个索引。此外,还提供了按月删除旧集合及按特定字段删除一个月前数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

批量建下个月的表
#!/bin/bash

source /root/.bash_profile

date_today=`date  +%Y-%m-%d`
date_month=`date -d '1 month' +%Y%m`
create_tab_log="/opt/scripts/mongodb/create_tab/create_tab_month.log"

echo '----------------------------------------------------'>>$create_tab_log
echo 'delete day is: '$date_today >> $create_tab_log
echo '----------------------------------------------------'>>$create_tab_log
for i in {1..9}
do
/usr/local/mongodb/bin/mongo  127.0.0.1:27017<< EOF >> $create_tab_log
use pmsadapterlog-ly
db.createCollection('pms_log_${date_month}0${i}');
db.pms_log_${date_month}0${i}.ensureIndex({"createTime":1});
db.pms_log_${date_month}0${i}.ensureIndex({"updateTime":1});
db.pms_log_${date_month}0${i}.ensureIndex({"prop":1});
db.pms_log_${date_month}0${i}.ensureIndex({"propName":1});
db.pms_log_${date_month}0${i}.ensureIndex({"hostIp":1});
db.pms_log_${date_month}0${i}.ensureIndex({"msgType":1});
db.pms_log_${date_month}0${i}.ensureIndex({"hotelCode":1});
db.pms_log_${date_month}0${i}.ensureIndex({"adapterKey":1});
db.pms_log_${date_month}0${i}.ensureIndex({"isSuccess":1});
db.pms_log_${date_month}0${i}.ensureIndex({"asyncIsSuccess":1});
db.pms_log_${date_month}0${i}.ensureIndex({"operationUser":1});
db.pms_log_${date_month}0${i}.ensureIndex({"isSendFog":1});
use pmsadapterlog-dc
db.createCollection('pms_log_${date_month}0${i}');
db.pms_log_${date_month}0${i}.ensureIndex({"createTime":1});
db.pms_log_${date_month}0${i}.ensureIndex({"updateTime":1});
db.pms_log_${date_month}0${i}.ensureIndex({"prop":1});
db.pms_log_${date_month}0${i}.ensureIndex({"propName":1});
db.pms_log_${date_month}0${i}.ensureIndex({"hostIp":1});
db.pms_log_${date_month}0${i}.ensureIndex({"msgType":1});
db.pms_log_${date_month}0${i}.ensureIndex({"hotelCode":1});
db.pms_log_${date_month}0${i}.ensureIndex({"adapterKey":1});
db.pms_log_${date_month}0${i}.ensureIndex({"isSuccess":1});
db.pms_log_${date_month}0${i}.ensureIndex({"asyncIsSuccess":1});
db.pms_log_${date_month}0${i}.ensureIndex({"operationUser":1});
db.pms_log_${date_month}0${i}.ensureIndex({"isSendFog":1});
exit
EOF
done

for i in {10..31}
do
/usr/local/mongodb/bin/mongo  127.0.0.1:27017<< EOF >> $create_tab_log
use pmsadapterlog-ly
db.createCollection('pms_log_${date_month}${i}');
db.pms_log_${date_month}${i}.ensureIndex({"createTime":1});
db.pms_log_${date_month}${i}.ensureIndex({"updateTime":1});
db.pms_log_${date_month}${i}.ensureIndex({"prop":1});
db.pms_log_${date_month}${i}.ensureIndex({"propName":1});
db.pms_log_${date_month}${i}.ensureIndex({"hostIp":1});
db.pms_log_${date_month}${i}.ensureIndex({"msgType":1});
db.pms_log_${date_month}${i}.ensureIndex({"hotelCode":1});
db.pms_log_${date_month}${i}.ensureIndex({"adapterKey":1});
db.pms_log_${date_month}${i}.ensureIndex({"isSuccess":1});
db.pms_log_${date_month}${i}.ensureIndex({"asyncIsSuccess":1});
db.pms_log_${date_month}${i}.ensureIndex({"operationUser":1});
db.pms_log_${date_month}${i}.ensureIndex({"isSendFog":1});
use pmsadapterlog-dc
db.createCollection('pms_log_${date_month}${i}');
db.pms_log_${date_month}${i}.ensureIndex({"createTime":1});
db.pms_log_${date_month}${i}.ensureIndex({"updateTime":1});
db.pms_log_${date_month}${i}.ensureIndex({"prop":1});
db.pms_log_${date_month}${i}.ensureIndex({"propName":1});
db.pms_log_${date_month}${i}.ensureIndex({"hostIp":1});
db.pms_log_${date_month}${i}.ensureIndex({"msgType":1});
db.pms_log_${date_month}${i}.ensureIndex({"hotelCode":1});
db.pms_log_${date_month}${i}.ensureIndex({"adapterKey":1});
db.pms_log_${date_month}${i}.ensureIndex({"isSuccess":1});
db.pms_log_${date_month}${i}.ensureIndex({"asyncIsSuccess":1});
db.pms_log_${date_month}${i}.ensureIndex({"operationUser":1});
db.pms_log_${date_month}${i}.ensureIndex({"isSendFog":1});
exit
EOF
done


删除一个月前的表

#!/bin/bash

source /root/.bash_profile

date_today=`date  +%Y-%m-%d`
date_month_ago=`date -d '1 month ago' +%Y%m%d`
drop_log="/opt/scripts/mongodb/create_tab/drop_tab_month.log"

echo '----------------------------------------------------'>>$drop_log
echo 'delete day is: '$date_today >> $drop_log
echo '----------------------------------------------------'>>$drop_log
/usr/local/mongodb/bin/mongo  127.0.0.1:27017<< EOF >> $drop_log
use pmsadapterlog-ly
db.pms_log_$date_month_ago.drop();
use pmsadapterlog-dc
db.pms_log_$date_month_ago.drop();
exit
EOF




按某个字段删除表里一个月前的数据
#!/bin/bash

source /root/.bash_profile

rm_date_today=`date  +%Y-%m-%d`
rm_date_month=`date -d '1 month ago' +%Y,%m,%d`
delete_log="/opt/scripts/mongodb/mongo_delete.log"

echo '----------------------------------------------------'>>$delete_log
echo 'delete day is: '$rm_date_today >> $delete_log
echo '----------------------------------------------------'>>$delete_log
/usr/local/mongodb/bin/mongo  127.0.0.1:27017<< EOF >> $delete_log
use pmsadapterlog-ly
db.pms_log.remove({createTime: {\$lt: new Date("$rm_date_month")},msgType:'updateavail'})
use pmsadapterlog-dc
db.pms_log.remove({createTime: {\$lt: new Date("$rm_date_month")},msgType:'updateavail'})
exit
EOF





来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29320885/viewspace-1974427/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29320885/viewspace-1974427/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值