Skip to content

Repository files navigation

MongoDB useful scripts

RS manual failover reconfig:

varst=rs.status();varcfg=rs.config();st.members.forEach(s=>{if(s.health==0){for(vari=0;i<cfg.members.length;i++){if(cfg.members[i]._id==s._id){cfg.members[i].votes=0;cfg.members[i].priority=0;}}}});rs.reconfig(cfg,{force:true});

Show full instance index usage statistics:

db.adminCommand({listDatabases:1}).databases.forEach(function(dd){if(!Array.contains(["admin","local","config"],dd.name)){vard=db.getSiblingDB(dd.name);d.getCollectionInfos().forEach(function(c){if(c.type=='collection'&&c.name!='system.views'&&c.name!='system.profile'&&c.name!='system.js'){varres=d.getCollection(c.name).aggregate([{$indexStats:{}},{"$project":{name:"$name",ops:"$accesses.ops",since:"$accesses.since"}}]);while(res.hasNext()){varr=res.next();if(r.name!="_id_"){print("'"+d+"'.'"+c.name+"'.'"+r.name+"': ops="+r.ops+", since="+r.since)}}}})}})

Random sample data generator

for(vari=0;i<=10000;i++){varelemId=Math.ceil(Math.random()*1000)+1;for(varj=0;j<=Math.ceil(Math.random()*1000)+200;j++){vardt=newDate(Date.now()-(Math.ceil(Math.random()*1000*60*60*24*1000)));varvalue=(Buffer.allocUnsafe(100000)).toString();db.mytest.insertOne({"elemId":elemId,"dt":dt,"value":value})}}

Export all indexes

varignoreKeys=["v","key","name","ns","safe","force"];varignoreDBs=["admin","local","config"];varignoreIndexes=['{"_id":1}'];vardbs=db.getMongo().getDBs().databases.filter(function(dbb){return!Array.contains(ignoreDBs,dbb.name)});dbs.forEach(function(dbData){varname=dbData.name;vardatabase=db.getSiblingDB(name);varcollections=database.getCollectionNames();collections.forEach(function(collectionName){varcollection=database.getCollection(collectionName)varindexes=collection.getIndexes().filter(function(index){return!Array.contains(ignoreIndexes,JSON.stringify(index.key))});indexes.forEach(function(index){varoptions={"background": "true"};varkeys=Object.keys(index).filter(function(key){return!Array.contains(ignoreKeys,key)});keys.forEach(function(key){options[key]=index[key]});print('db.getSiblingDB("'+name+'").getCollection("'+collectionName+'").createIndex('+JSON.stringify(index.key)+','+JSON.stringify(options)+")");})})});

About

MongoDB useful scripts

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages