Skip to content

Instantly share code, notes, and snippets.

View marcoberri's full-sized avatar
🏠
Working from home

Marco Berri marcoberri

🏠
Working from home
View GitHub Profile
@marcoberri
marcoberri / fixDocStatsData.js
Created November 19, 2015 09:53
Fix document stats data
for(dbName in db.getMongo().getDBNames()){
var name = db.getMongo().getDBNames()[dbName];
if(name.lastIndexOf("<db start name>") === 0 && name !== "<db>_to_exclude"){
print();
print('------------ START ---------------------');
print('--> to fix --> ' + name);
var dbSister = db.getSisterDB(name);
var coll = dbSister.getCollection("nodes");
@marcoberri
marcoberri / MongoGrupping.js
Last active November 20, 2015 08:54
New Mongo Grupping method. Very Fast.
db.nodes.group(
{key : {'className':'it.marcoberri.Document'},
cond:{"stats" : {"$exists":1}},
reduce : function(curr, result){
if(curr.stats.downloads)
result.totDownload += curr.stats.downloads;
if(curr.stats.views)
result.totView += curr.stats.views;
result.totEle++;
@marcoberri
marcoberri / mtools_examples.js
Created November 23, 2015 15:05
Examples with mtools
example using mtools
-------------------------
mlogfilter
mlogfilter /var/log/mongodb/mongod_node1.log --slow --json | mongoimport -d mtools -c node1
db.node1.findOne();
{
"_id" : ObjectId("5652d5a0db7669686cfc1952"),
"split_tokens" : [
@marcoberri
marcoberri / fixMillis.js
Created December 29, 2015 17:33
Fix IsoData to Millis in other field
var dbOne = db.getSisterDB('mbmeteolacrosse');
var cur = dbOne.rawdata.find({"tsMillis":{"$exists":false}},{"_id":1,"ts":1}).addOption(DBQuery.Option.noTimeout);
var updated=0;
cur.forEach(function(doc) {
dbOne.rawdata.update({"_id":doc._id},{"$set" : {"tsMillis":doc.ts.getTime()}});
updated = updated + 1;
});
@marcoberri
marcoberri / curretOp.js
Last active January 28, 2016 08:28
analyze current Operation
while(1) {
var c = db.currentOp();
if(c && c.inprog && c.inprog.length > 0 && c.inprog[0].op == 'query') {
var el = c.inprog[0];
if( el.ns == 'admin.$cmd' || el.ns == 'local.$cmd' || el.ns == '')
continue;
print("on:" + el.ns);
if(el.microsecs_running && el.microsecs_running.floatApprox)
print("time:" + el.microsecs_running.floatApprox);
print("query: " + JSON.stringify(el.query));
String root_dir = base + "/file_freedb/freedb-complete-20090101/";
FileFilter directoryFilter = new FileFilter() {
public boolean accept(File file) {
return file.isDirectory();
}
};
@marcoberri
marcoberri / downgrade_Mongodb_replica_to_standalone.txt
Created February 2, 2016 11:12
Migrate MongoDB ReplicaSet to single MongoDB Node
mongoserver:PRIMARY> rs.status();
{
"set" : "mongoserver",
"date" : ISODate("2016-02-02T10:47:07.510Z"),
"myState" : 1,
"members" : [
{
"_id" : 3,
"name" : "192.168.1.10:37017",
"health" : 1,
@marcoberri
marcoberri / MongoScriptUtils.js
Created February 4, 2016 11:16
Script Utils for Mongo DB
function bytesToSize(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)) {
@marcoberri
marcoberri / PurgeLogCollection.js
Last active February 4, 2016 16:51
Esegue una eliminazione di dati in tutte le collection contente i log eseguendo il controllo sul campo data chiamato "ts"
/*
la funzioanlità ricerca nel server tutti i db like <db_like_name> e per ogni collecion presente nel singolo db
esegue una eliminazione per spurgare i log.
per eseguire lo script
./mongo --host <indirizzo_host> --port <porta> PurgeLogCollection.js --quiet --eval "var deleteData=false;var beforePurgeDay=200;"
parametri in eval
deleteDate = true|false (se false visualizza solo questo che dovrà fare senza eliminare default false)
@marcoberri
marcoberri / DropCollectionInDB.js
Last active February 9, 2016 11:03
MongoDB delete all collections in db with exclusion colleciton list
function deleteAllCollection(dbName,excludeCollection){
var dbOne = db.getSisterDB(dbName);
for(var colName in dbOne.getCollectionNames()){
var collectionName = dbOne.getCollectionNames()[colName];
if(!collectionName || collectionName == "")
continue;
if(excludeCollection.indexOf(collectionName) > -1)
continue;
dbOne[collectionName].drop();