Skip to content

Instantly share code, notes, and snippets.

@marcoberri
Last active September 17, 2015 07:23
Show Gist options
  • Save marcoberri/a6bda3536c6d49bbe9c5 to your computer and use it in GitHub Desktop.
Save marcoberri/a6bda3536c6d49bbe9c5 to your computer and use it in GitHub Desktop.
/***
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.
project: http://meteo.marcoberri.it
**/
var dbOne = db.getSisterDB('mbmeteolacrosse');
//Last 24 hours
//var cur = dbOne.rawdata.find({"ts":{"$gte":new Date(new Date().getTime() - 60 * 60 * 24 * 1000)}},{"ts":1,"RC":1}).sort({"ts":1})
var cur = dbOne.rawdata.find({},{"ts":1,"RC":1}).sort({"ts":1}).addOption(DBQuery.Option.noTimeout);
var prev=0;
var l
cur.forEach(function(doc) {
var diff=0;
if((doc.RC-prev) < 0 || isNaN(prev) || isNaN(doc.RC) || isNaN((doc.RC-prev)) || prev == doc.RC)
diff=0;
else
diff=doc.RC-prev
if(diff > 2500)
diff=0;
prev = doc.RC;
dbOne.rain.update({"ts": doc.ts},{"ts": doc.ts,"RC" : diff},{upsert:true});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment