1
У меня есть некоторые документы в коллекции монго, подобные этому.Как использовать функцию агрегации Mongo для вычисления итогов и субтетальных процентов с вложенными группами?
{
"_id" : ObjectId("57e290087139be15d59408c1"),
"groupName" : "Registration",
"testCases" : [
{
"name" : "R1",
"browser" : "Chrome",
"status" : "passed"
},
{
"name" : "R1.1",
"browser" : "Chrome",
"status" : "passed"
},
{
"name" : "R2",
"browser" : "Chrome",
"status" : "passed"
},
{
"name" : "R3",
"browser" : "Chrome",
"status" : "passed"
},
{
"name" : "R4",
"browser" : "Chrome",
"status" : "passed"
},
{
"name" : "R1",
"browser" : "Firefox",
"status" : "passed"
},
{
"name" : "R2",
"browser" : "Firefox",
"status" : "passed"
},
{
"name" : "R3",
"browser" : "Firefox",
"status" : "passed"
},
{
"name" : "R4",
"browser" : "Firefox",
"status" : "failed"
}
]
}
{
"_id" : ObjectId("57e2903b7139be15d59408c2"),
"groupName" : "Checkout",
"testCases" : [
{
"name" : "C1",
"browser" : "Chrome",
"status" : "passed"
},
{
"name" : "C2",
"browser" : "Chrome",
"status" : "passed"
},
{
"name" : "C3",
"browser" : "Chrome",
"status" : "failed"
},
{
"name" : "C4",
"browser" : "Chrome",
"status" : "passed"
},
{
"name" : "C1",
"browser" : "Firefox",
"status" : "passed"
},
{
"name" : "C2",
"browser" : "Firefox",
"status" : "passed"
},
{
"name" : "C3",
"browser" : "Firefox",
"status" : "passed"
},
{
"name" : "C4",
"browser" : "Firefox",
"status" : "failed"
}
]
}
Как использовать совокупную функцию Монго для вычисления итогов и промежуточные итоги процентов с вложенными группами?
Я ожидаю выход с результатами,
Пример Ожидаемый выход:
results: [
{
"groupName": "Registration",
"totalTests": 17,
"section": [
{ "name": "R1", "totalTests": 17, "sectionCount": 2 }
]
}
]
Спасибо Chridam. Я никогда не знал, что есть несколько ключевых слов, которые могут помочь в совокупных функциях, таких как $$ ROOT, $ push, $ first. Еще раз спасибо за то, что вы указали на это свет. Теперь мой запрос был уменьшен с 100 + строк кода до менее 40. – Nirmal