У меня есть MongoDB qith коллекция containng onjects какMongoDB даты и времени фильтра и агрегации
{
timestamp: <unix timestamp>,
sensor: <string>,
temperatore: number
}
Полный стек
- Оборудование:
- малина пи 3
- Бэкэнд:
- MongoDB 2.4.16
- nodejs 6.8.1
- mongodn (модуль узла) 2.2.11
- Фронтенд
- angularjs 1.5.8
- Highcharts 5
- highcharts-ng 0,0.13
В моей фактической установке у меня есть запись каждую минуту, с 3 разных датчиков, поэтому 4320 записей в день. Это хорошо для графиков в течение 1 дня.
Я хотел бы найти способ уменьшить количество записей, поэтому график на 1 неделю быстрее, и мне не нужно отправлять все записи 32040.
Я думал о получении одного значения каждые 10 минут (график менее точный, но мне не нужно увеличивать), отфильтрованный на уровне узла, но он может стать тяжелым, когда я захочу на диаграмме, т.е. 1 год (1,5 млн записей).
Поэтому я хотел бы получить некоторые мнения о том, как это сделать эффективно. Вероятно, какой-то сложный фильтр по вызову find()
, но я не могу придумать ничего, что могло бы работать, кроме перехода на традиционную БД (PostgreSQL или Mariadb).
Вы могли бы извлечь выгоду из базы данных временных рядов, как [InfluxDB] (https: //www.influxdata. com/time-series-platform/influxdb /), которые прекрасно взаимодействуют с чем угодно, включая [Grafana] (http://grafana.org/). –
спасибо, O заглянет в него, я не знаю, что он существует :) –