MongoDB 批量清理结果集

主要是为了批量清理临时结果集,当然清理其他的结果集也没问题。。。

>>把功能函数持久化,可以理解为和SQL的存储过程性质一样。。。

db.system.js.save({
    _id:'batchDrop',
    value:
    	function(prefix) {
            prefix = !prefix ? 'tmp.mr' : prefix;
            var names = db.getCollectionNames();
            var info = {total:0, names:[]};
            for( i in names) {
                if(names[i].indexOf(prefix) == 0) {
                    db[names[i]].drop();
                    info.total++;
                    info.names.push(names[i]);
                }
            }
            return info;        
	    }
})

>>临时结果集如下

tmp_mo_spcode_consignid_region_serviceid_20120817
tmp_mo_spcode_consignid_region_serviceid_20120818
tmp_mo_spcode_consignid_region_serviceid_20120819
tmp_mo_spcode_consignid_region_serviceid_20120819_1
tmp_mo_spcode_consignid_region_serviceid_20120820
tmp_mo_spcode_consignid_region_serviceid_20120821

>>开始清理

> var info = db.eval("batchDrop('tmp_mo_spcode_consignid_region_serviceid_20120817')");
> printjson(info);
{
	"total" : 1,
	"names" : [
		"tmp_mo_spcode_consignid_region_serviceid_20120817"
	]
}

> var info = db.eval("batchDrop('tmp_mo_spcode_consignid_region_serviceid_2012081')"); 
> printjson(info);
{
	"total" : 3,
	"names" : [
		"tmp_mo_spcode_consignid_region_serviceid_20120818",
		"tmp_mo_spcode_consignid_region_serviceid_20120819",
		"tmp_mo_spcode_consignid_region_serviceid_20120819_1"
	]
}

> var info = db.eval("batchDrop()");
> printjson(info);
{
	"total" : 3,
	"names" : [
		"tmp.mr.mapreduce_1345517874_17406",
		"tmp.mr.mo.000953",
		"tmp.mr.mt.000953"
	]
}

转载于:https://my.oschina.net/huzorro/blog/74040

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值