Выводить пустые результаты в статистику после агрегации данных в MongoDB
Я вывожу данные по пройденным тестам за определённый промежуток времени с разбиением по интервалам в 15 минут. Но в результатах мне приходят только интервалы за которые тесты проходили, не добавляя пустые интервалы в список. Есть ли возможность их добавить? Заранее благодарю за ответ.
Вот скрипт.
db.test_case_overview.aggregate(
[
{ "$match" : { "status": "PASSED" , "finished_at" : { "$gte" : "$from", "$lt" : "$to" }}},
{ "$group": {
"_id": {
"interval": {"$toDate": {
"$subtract": [
{ "$toLong": "$finished_at" },
{ "$mod": [ { "$toLong": "$finished_at" }, 900000 ] }
]
}
}},
"count": { "$sum": 1 }
}},
{ "$sort": { "_id.interval": 1 } },
{ "$project": { "name" : "Passed tests", "value" : "$count", "ts" : "$_id.interval"} }
])
Ожидание:
{ "_id" : { "realDate " : ISODate("2020-09-24T13:00:00Z") }, "name" : "Passed tests", "value" : 4, "ts" : ISODate("2020-09-24T13:00:00Z") }
{ "_id" : { "realDate " : ISODate("2020-09-24T13:15:00Z") }, "name" : "Passed tests", "value" : 0, "ts" : ISODate("2020-09-24T13:15:00Z") }
{ "_id" : { "realDate " : ISODate("2020-09-24T13:30:00Z") }, "name" : "Passed tests", "value" : 18, "ts" : ISODate("2020-09-24T13:30:00Z") }
{ "_id" : { "realDate " : ISODate("2020-09-24T13:45:00Z") }, "name" : "Passed tests", "value" : 0, "ts" : ISODate("2020-09-24T13:45:00Z") }
Реальность:
{ "_id" : { "realDate " : ISODate("2020-09-24T13:00:00Z") }, "name" : "Passed tests", "value" : 4, "ts" : ISODate("2020-09-24T13:00:00Z") }
{ "_id" : { "realDate " : ISODate("2020-09-24T13:30:00Z") }, "name" : "Passed tests", "value" : 18, "ts" : ISODate("2020-09-24T13:30:00Z") }