У меня есть требование, в котором я должен сгенерировать результат, как показано ниже:
USERID | Screen ON time | Screen Off time
1 | 2020-04-29 11:27:04 AM | 2020-04-29 11:33:04 AM
2 | 2020-04-29 12:27:04 AM | 2020-04-29 12:33:04 AM
3 | 2020-04-29 13:27:04 AM | 2020-04-29 13:33:04 AM
4 | 2020-04-29 13:27:04 AM | 2020-04-29 14:33:04 AM
1 | 2020-04-29 14:27:04 AM | 2020-04-29 15:33:04 AM
6 | 2020-04-29 15:27:04 AM | 2020-04-29 16:33:04 AM
2 | 2020-04-29 16:27:04 AM | 2020-04-29 17:33:04 AM
7 | 2020-04-29 17:27:04 AM | 2020-04-29 19:33:04 AM
Пользовательские данные повторяются, поскольку пользователь использует устройство несколько раз в день,
Документ схемы, как сохраненные данные приведены ниже:
{
"_id" : ObjectId("5eae9ffbc6a54e2bd0a9a3f5"),
"user" : 1,
"device" : 1 device,
"type" : "sleepawake",
"activity" : "Device Screen Off",
"when" : ISODate("2020-05-03T07:58:36.000Z"),
"createdAt" : ISODate("2020-05-03T10:42:03.083Z"),
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId("5eae9ffbc6a54e2bd0a9a3f6"),
"user" : 2,
"device" : 2 device,
"type" : "sleepawake",
"activity" : "Device Wakes Up",
"when" : ISODate("2020-05-03T07:58:54.000Z"),
"createdAt" : ISODate("2020-05-03T10:42:03.084Z"),
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId("5eae9ffbc6a54e2bd0a9a3f7"),
"user" : 1,
"device" : i device,
"type" : "sleepawake",
"activity" : "Device Screen Off",
"when" : ISODate("2020-05-03T07:59:03.000Z"),
"createdAt" : ISODate("2020-05-03T10:42:03.084Z"),
"__v" : 0
}
Я пробовал агрегацию mongodb, чтобы получить результат как требование, но мне не удается заставить его работать.
Могу ли я каким-то образом сгенерировать такой результат?
Ожидаемый результат:
{
user: 1,
ScreenON: 2020-04-29 11:27:04 AM,
ScreenOFF: 2020-04-29 11:42:27 AM
},
{
user: 2,
ScreenON: 2020-04-29 11:27:04 AM,
ScreenOFF: 2020-04-29 11:42:27 AM
},
{
user: 1,
ScreenON: 2020-04-29 11:45:04 AM,
ScreenOFF: 2020-04-29 11:52:27 AM
}