官方文档:https://docs.mongodb.com/v3.2/1、下载安装包并安装(注意下载对应linux版本的安装包)cd /usr/local/src确认 linux 版本cat /PRoc/versionLinux version 2.6.18-308.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-52)) #1 SMP Tue Feb 21 20:06:06 EST 2012RHEL5:wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel55-3.2.10.tgztar -zxvf mongodb-linux-x86_64-rhel55-3.2.10.tgzmv mongodb-linux-x86_64-rhel55-3.2.10 /usr/local/mongodbRHEL6:wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.10.tgztar -zxvf mongodb-linux-x86_64-rhel62-3.2.10.tgzmv mongodb-linux-x86_64-rhel62-3.2.10 /usr/local/mongodb2、配置和启动mkdir /usr/local/mongodb/logsmkdir /usr/local/mongodb/dataln -s /usr/local/mongodb/bin/mongo /usr/local/bin/mongovi /usr/local/mongodb/mongod.cfgnet: bindip: 127.0.0.1 port: 17088security: authorization: enabledsystemLog: destination: file path: /usr/local/mongodb/logs/mongod.logstorage: dbPath: /usr/local/mongodb/data说明:security 配置项关闭时可以无账户登录和操作,必须设置账户并开启 authorization: enabled, 以防止安全问题启动/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongod.cfg > /usr/local/mongodb/logs/out.log 2>&1 &ps -ef|grep mongo|egrep -v grep|wc -l|awk '{if($1>0){print "Running";exit 0;}else{print "Stop";exit 1;}}'关闭ps -ef|grep mongo|egrep -v grep|awk '{print "kill -9 "$2}'|shps -ef|grep mongo|egrep -v grep|wc -l|awk '{if($1>0){print "Running";exit 0;}else{print "Stop";exit 1;}}'查看状态ps -ef|grep mongo|egrep -v grep|wc -l|awk '{if($1>0){print "Running";exit 0;}else{print "Stop";exit 1;}}'3、配置管理员mongo 127.0.0.1:17088/dnsinfouse admindb.createUser({user:"huangyc",pwd:"hyc123ABC",roles:["root"]})db.auth("huangyc","hyc123ABC")返回1表示登陆正常。mongo -u huangyc -p hyc123ABC 127.0.0.1:17088/dnsinfo_201611use dnsinfo_201611#db.createUser({user:"huangyc",pwd:"hyc123ABC",roles:["dbOwner"]})db.auth("huangyc","hyc123ABC")返回1表示登陆正常。4、MapReduce示例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})