Ich entwickle eine Anwendung, die Daten von Sensoren sammelt und ich brauche reduzieren Sie die Menge der Daten, die in einer Mongodb-Datenbank mit einem Wert (Temperatur) gespeichert und ein Datum (Zeitstempel).Entfernen Sie redundante Daten von Sensoren mit Datum und Wert
Das Dokument haben folgendes Format:
{
temperature: 10,
timestamp: ISODate("2016-04-29T14:37:50.370Z")
sensorCode:"SENSOR_A1"
}
Das Problem ist, dass die Sensoren Daten zu viel häufig gesendet, so gibt es zu viele Dokumente mit redudant Daten in kürzester Zeit (mal 10 Minuten sagen). Ich meinte, dass es nicht nützlich ist, mehrere gleiche Werte in einer sehr kurzen Zeitspanne zu haben. Beispiel: hier gibt es Daten von einem Sensor, der Temperatur berichtet, wird 10
// collection: datasensors
[
{
temperature: 10,
timestamp: ISODate("2016-04-29T14:37:50.370Z")
sensorCode:"SENSOR_A1"
},
{
temperature: 10,
timestamp: ISODate("2016-04-29T14:38:50.555Z")
sensorCode:"SENSOR_A1"
},
{
temperature: 10,
timestamp: ISODate("2016-04-29T14:38:51.654Z")
sensorCode:"SENSOR_A1"
}
,
{
temperature: 10,
timestamp: ISODate("2016-04-29T14:50:20.335Z")
sensorCode:"SENSOR_A1"
}
]
Da eine Minute precission nicht erforderlich ist, ich möchte alle Dokumente entfernen 2016-04-29T14: 37: 50.370Z zu 2016-04-29T14: 38: 51.32Z außer einem. So sollte das Ergebnis sein, dies:
[
{
temperature: 10,
timestamp: ISODate("2016-04-29T14:38:51.654Z")
sensorCode:"SENSOR_A1"
},
{
temperature: 10,
timestamp: ISODate("2016-04-29T14:50:20.335Z")
sensorCode:"SENSOR_A1"
}
]
Die Entfernungsoperation I durchführen möchte, sollte „reduzieren“ gleiche Temperaturen in Zeitbereichen weniger als 10 Minuten auf einen Wert.
Gibt es irgendeine Technik, um dies zu erreichen?