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 / 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,
String root_dir = base + "/file_freedb/freedb-complete-20090101/";
FileFilter directoryFilter = new FileFilter() {
public boolean accept(File file) {
return file.isDirectory();
}
};
@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));
@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 / 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 / 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 / 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");
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)) {
@marcoberri
marcoberri / MaxMinData.js
Last active October 13, 2015 08:43
Usa una mapreduce per calcolare in minimo e il massino di un dato valore per il progetto meteo.marcoberri.it
/***
Extract max a min data from rawtable of extracting data from La crosse WS1640
project: http://meteo.marcoberri.it
**/
var dbOne = db.getSisterDB('mbmeteolacrosse');
/***
data example
{ "_id" : ObjectId("5554dc1a4e047bc09c427420"), "ts" : ISODate("2015-05-13T23:24:03Z"), "RC" : 6 }
{ "_id" : ObjectId("5554dc1a4e047bc09c427421"), "ts" : ISODate("2015-05-13T23:25:03Z"), "RC" : 6 }
get different from RC prev and act record and write a new collection in upsert
Data from La Crosse ws1640 increment Rain Counter.