Есть БД на Монго с такой схемой:
let reportSchema = new Schema({
ssoid: {type: String},
ts: {type: Date},
grp: {type: String},
type: {type: String},
subtype: {type: String},
url: {type: String},
orgid: {type: String},
formid: {type: String},
code: {type: String},
ltpa: {type: String},
sudirresponse: {type: String},
ymdh: {type: String}
});
ssoid – Уникальный идентификатор пользователей
ts – Время (unix time)
grp - Группа события
type – Тип события
subtype – Подтип события
url – Адрес с которого пришло событие
orgid – Организация предоставляющая услугу
formid – Идентификатор формы
ltpa – Ключ сессии (в данном наборе пустой)
sudirresponse – Ответ от сервиса авторизации (в данном наборе пустой)
ymdh – Дата в формате YYYY-MM-DD-HH
Нужно выполнить три запроса, в БД через mongoose:
1. Вывести список пользователей(по ssoid) и используемых ими форм за последний час.
2. Вывести список пользователей, которые начали активность на форме и не дошли до конца. Например, для услуг grp: guis_-47 начальное состояние start, конечное состояние send. Вывести на каком шаге остановился.
3. Составить ТОП – 5 самых используемых форм.
Сами записи выглядят примерно так:
{"_id":{"$oid":"5c58af318c5faf0f20775db6"},"ssoid":"650ae77a-ffce-475d-a930-c7e345e0658c","ts":{"$date":{"$numberLong":"1499763594000"}},"grp":"guis_-47","type":"formcontroller","subtype":"send","url":"https://www.mos.ru/pgu/ru/application/guis/-47/#step_1","orgid":"guis","formid":"-47","code":"MPGU","ltpa":"","sudirresponse":"","ymdh":"2017-07-11-09","__v":{"$numberInt":"0"}}
{"_id":{"$oid":"5c58af318c5faf0f20775db7"},"ssoid":"aeadac26-3e19-438b-8e4a-a1ae754bbe41","ts":{"$date":{"$numberLong":"1499763600000"}},"grp":"guis-47","type":"bill","subtype":"prepare","url":"","orgid":"","formid":"","code":"","ltpa":"","sudirresponse":"","ymdh":"2017-07-11-09","__v":{"$numberInt":"0"}}
{"_id":{"$oid":"5c58af318c5faf0f20775db8"},"ssoid":"Unauthorized","ts":{"$date":{"$numberLong":"1499763577000"}},"grp":"gibdd_fines","type":"formcontroller","subtype":"start","url":"https://www.mos.ru/pgu/ru/application/gibdd/fines/?onsite_from=popular#step_1","orgid":"gibdd","formid":"fines","code":"MPGU","ltpa":"","sudirresponse":"","ymdh":"2017-07-11-09","__v":{"$numberInt":"0"}}