Я на самом деле хочу проанализировать данные из базы данных Монго с данными за 1/4 часа, и несколько устройств могут отправлять обратно данные для одного и того же оборудования.
Таким образом, я на самом деле собираю совокупностьс базой совпадений на серийный номер и записи и ISOdate,
плюс группа, использующая переключатель для хранения каждого 1/4 часа в нужном месте, но я хотел бы также получить минимальное значение для каждого устройства, поэтому яможет иметь n разностных значений для одного и того же 1 / 4.
$ match:
'sn': {'$ in': ['sn1', 'sn2']},
'entry': {'$ in': [0,1,2,3,4]},
'dt': {'$ gte': ISODate ("2019-01-23T00: 00: 00.000 + 0000 "), '$ lt': ISODate (" 2019-01-24T00: 00: 00.000 + 0000 ")}
$ группа:
_id: {'entry': '$ entry', 'dt': {'$ switch': {'branch': [{'case': {'$ lte': ['$ dt', ISODate ("2019-01-23T00: 15: 00.000 + 0000 ")]}, 'then': ISODate (" 2019-01-23T00: 15: 00.000 + 0000 ")},
{'case': {'$ lte':['$ dt', ISODate ("2019-01-23T00: 30: 00.000 + 0000")]}, 'then': ISODate ("2019-01-23T00: 30: 00.000 + 0000 ")},
{'case': {'$ lte': ['$ dt', ISODate (" 2019-01-23T00: 45: 00.000 + 0000 ")]}, 'then': ISODate ("2019-01-23T00: 45: 00.000 + 0000")},
{'case': {'$ lte': ['$ dt', ISODate ("2019-01-23T00: 00: 00.000 + 0000 ")]}, 'then': ISODate (" 2019-01-23T01: 00: 00.000 + 0000 ")},
{'case': {'$ lte': ['$ dt', ISODate ("2019-01-23T01: 15: 00.000 + 0000")]}, 'then': ISODate ("2019-01-23T01: 15: 00.000 + 0000")},
{'case': {'$ lte': ['$ dt', ISODate ("2019-01-23T01: 30: 00.000 + 0000")]}, 'then': ISODate ("2019-01-23T01: 30: 00.000 + 0000")},
{'case': {'$ gte': ['$ dt', ISODate ("2019-01-23T01: 30:00.000 + 0000 ")]}, 'then': ISODate (" 2019-01-23T02: 00: 00.000 + 0000 ")},]}
}
}, значение: {'$ min': '$ value'}
Мой ожидаемый результат, то, что я хочу добавить, будет примерно таким:
_id: entry ": NumberInt (3)," dt ": ISODate ("2019-01-23T02: 00: 00.000 + 0000 ")
значения n1: 1, значение SN2: 0, AvgSNS: 0,5,
Я действительно не знаю, возможно ли этои я пытаюсь сделать меньше постобработки, насколько это возможно, это способ сделать это?
Заранее спасибо.