Skip to content

Instantly share code, notes, and snippets.

@marcoberri
Created September 28, 2015 15:42
Show Gist options
  • Save marcoberri/3962d7a1273e4a065377 to your computer and use it in GitHub Desktop.
Save marcoberri/3962d7a1273e4a065377 to your computer and use it in GitHub Desktop.
bytesToSize = function(bytes, precision) {
var kilobyte = 1024;
var megabyte = kilobyte * 1024;
var gigabyte = megabyte * 1024;
var terabyte = gigabyte * 1024;
if ((bytes >= 0) && (bytes < kilobyte)) {
return bytes + ' B';
} else if ((bytes >= kilobyte) && (bytes < megabyte)) {
return (bytes / kilobyte).toFixed(precision) + ' KB';
} else if ((bytes >= megabyte) && (bytes < gigabyte)) {
return (bytes / megabyte).toFixed(precision) + ' MB';
} else if ((bytes >= gigabyte) && (bytes < terabyte)) {
return (bytes / gigabyte).toFixed(precision) + ' GB';
} else if (bytes >= terabyte) {
return (bytes / terabyte).toFixed(precision) + ' TB';
} else {
return bytes + ' B';
}
}
var report = [];
for(dbName in db.getMongo().getDBNames()){
var name = db.getMongo().getDBNames()[dbName];
var newDB = db.getSisterDB(name);
var db_json = {'name' : name, collections : [] };
for(dbCollName in newDB.getCollectionNames()){
var collName = newDB.getCollectionNames()[dbCollName];
var newColl = newDB.getCollection(collName);
db_json.collections.push({"name":collName, "storageSize": bytesToSize(newColl.stats().storageSize,2), "size":bytesToSize(newColl.stats().size,2), "count":newColl.stats().count} )
}
report.push(db_json);
}
printjson(report);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment