Представьте себе следующее:Как можно найти последующие результаты, используя конвейер агрегации MongoDB?
{
"user" : "john",
"type" : "connect",
"created" : ISODate("2015-10-02T10:00:00.000Z"),
"__v" : 0
},
{
"user" : "john",
"type" : "disconnect",
"created" : ISODate("2015-10-02T10:10:00.000Z"),
"__v" : 0
},
{
"user" : "frank",
"type" : "connect",
"created" : ISODate("2015-10-02T10:05:00.000Z"),
"__v" : 0
},
{
"user" : "frank",
"type" : "disconnect",
"created" : ISODate("2015-10-02T10:15:00.000Z"),
"__v" : 0
},
{
"user" : "john",
"type" : "connect",
"created" : ISODate("2015-10-02T10:15:00.000Z"),
"__v" : 0
}
Я хочу создать ППР-отчет, говоря «пользователь джон был 5 минут простоя». Сейчас я полностью в темноте, я превратился в агрегирование, а также mapReduce, но ничто не указывает на то, в каком направлении оно мне нужно. Я мог бы решить это, используя простой javascript, но я хочу избежать этого, так как MongoDB сделан таким образом для агрегации этих видов. Может быть, я просто застрял у меня в голове и должен немного отдохнуть, но, возможно, у кого-то есть хорошее решение для меня.
Так лучший результат будет (я думаю):
{
"user" : "john",
"outage": "5"
}
Помимо этого «оптимального», например, могут быть случаи, когда отсоединяется глотают системой при развертывании новой версии сервера. Это около 10 секунд, и я думаю о том, чтобы оставить их для удобства.
А как насчет откровенности? У него не будет новой записи для подключения? –
Уверен, что у него может быть новая запись для подключения. Простой сценарий пользовательской базы данных, но с документацией об отключении, так как мои пользователи имеют вид-ap (i/e). – wegginho