Я разрабатываю приложение, которое собирает данные от датчиков, и мне нужно уменьшить объем данных, хранящихся в базе данных mongodb, используя значение (температуру) и дата (временная метка).Удалите избыточные данные с датчиков с использованием даты и значения
Документ имеет следующий формат:
{
temperature: 10,
timestamp: ISODate("2016-04-29T14:37:50.370Z")
sensorCode:"SENSOR_A1"
}
Проблема заключается в том, что датчики посылать данные слишком часто, так что слишком много документов с redudant данных в течение короткого периода времени (скажем, 10 минут). Я имел в виду, что не очень полезно иметь несколько равных значений за очень короткий промежуток времени. Пример: здесь есть данные от датчика, который имеет температуру отчетности 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"
}
]
Поскольку минуту Precission не требуется, хотелось бы, чтобы удалить все документы из 2016-04-29T14: 37: 50.370Z к 2016-04-29T14: 38: 51.32Z за исключением одного. Так результат должен быть этот:
[
{
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"
}
]
операции удаления Я хочу, чтобы выполнить должны «уменьшить» равные температуры во времени в диапазоне менее чем за 10 минут до одного значения.
Есть ли какая-либо техника для достижения этой цели?