-
Notifications
You must be signed in to change notification settings - Fork 0
/
measurements_after_insert.js
29 lines (25 loc) · 1.23 KB
/
measurements_after_insert.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var lastM = 0;
var device;
var sensor;
var createdAt;
Measurements.find({_id: doc._id }).map(
function(item) {
device = item.device;
sensor = item.sensor;
lastM = item.message;
createdAt = item.createdAt;
});
var topic = 'Devices/' + device + '/Sensors/' + sensor;
Devices.update({ topic: topic}, { $set: { device: device, sensor: sensor, lastMeasurement: lastM }});
var epoch = new Date(createdAt);
var minutes = epoch.getMinutes();
epoch.setMilliseconds(0);
epoch.setSeconds(0);
epoch.setMinutes(minutes - (minutes % 1));
Measurements24h.update({topic: topic, createdAt: epoch}, { $set: { device: device, sensor: sensor}, $inc: {nmeasurements: 1, sum: lastM}}, {upsert: true});
epoch.setMinutes(minutes - (minutes % 5));
Measurements1w.update({topic: topic, createdAt: epoch}, { $set: { device: device, sensor: sensor}, $inc: {nmeasurements: 1, sum: lastM}}, {upsert: true});
epoch.setMinutes(0);
epoch.setHours(0);
Measurements1m.update({topic: topic, createdAt: epoch}, { $set: { device: device, sensor: sensor}, $inc: {nmeasurements: 1, sum: lastM}}, {upsert: true});
Measurements1y.update({topic: topic, createdAt: epoch}, { $set: { device: device, sensor: sensor}, $inc: {nmeasurements: 1, sum: lastM}}, {upsert: true});