var map = function() { emit(this.DNS_IP, {sum: this.DNS_TIME, count: 1});}var reduce = function(key, values) { var sum = 0, count=0; values.forEach(function(val) { sum += Number(val.sum); count += val.count; }); return {"sum": sum, "count": count};}var finalfunc = function(key, value) { return {"sum": Number(value.sum), "count": value.count, "avg": Number(value.sum/value.count)};}var colls = db.getCollectionNames();for (var i in colls) { db.getCollection(colls[i]).mapReduce(map, reduce, {out: {reduce:"aresults"}, finalize: finalfunc})}//db.getCollection("360.xdwscache").mapReduce(map, reduce, {out: {reduce:"aresults"}, finalize: finalfunc})var map = function() { if (/^2016-10-02/.test(this.DETECT_TIME)) { var successcount = (this.STATUS == "2" ? 0 : 1); emit( {"date": "2016-10-02", "PROVINCE_CODE": this.PROVINCE_CODE, "CARRY_COMPANY": this.CARRY_COMPANY}, {count: 1, success_count: successcount, fail_count: 1 - successcount} ); }}var reduce = function(key, values) { var count=0, successcount = 0, failcount = 0; values.forEach(function(val) { count += val.count; successcount += val.success_count; failcount += val.fail_count; }); return {"count": count, success_count: successcount, fail_count: failcount};}var finalfunc = function(key, value) { return {"count": NumberInt(value.count), "success_count": NumberInt(value.success_count), "fail_count": NumberInt(value.fail_count), "fail_rate": 100*Number(value.fail_count)/Number(value.count) };}var colls = db.getCollectionNames();for (var i in colls) { db.getCollection(colls[i]).mapReduce(map, reduce, {out: {reduce:"aresults"}, finalize: finalfunc})}// db.getCollection("360.xdwscache").mapReduce(map, reduce, {out: {replace:"360.xdwscache.result", db: "dnsresult"}, finalize: finalfunc})
新聞熱點
疑難解答