【发布时间】:2015-11-14 07:13:05
【问题描述】:
我的run 集合中有这样的文档:
{
"_id" : ObjectId("55d4410544c96d6f6578f893"),
"runName" : "1439973637614",
"suiteList": [
{
"suiteStatus": "PASS"
},
{
"suiteStatus": "PASS"
}
]
}
{
"_id" : ObjectId("55d44eb4c0422e7b8bffe76b"),
"runName" : "1439977140396",
"suiteList": [
{
"suiteStatus": "FAIL"
},
{
"suiteStatus": "PASS"
}
]
}
{
"_id" : ObjectId("55d44f0bc0422e7b8bffe76f"),
"runName" : "1439977227370",
"suiteList": [
{
"suiteStatus": "FAIL"
},
{
"suiteStatus": "FAIL"
}
]
}
现在我想得到如下输出:
{
"runName" : "1439973637614",
{
"pass": 2,
"fail": 0
}
}
{
"runName" : "1439977140396",
{
"pass": 1,
"fail": 1
}
}
{
"runName" : "1439977227370",
{
"pass": 0,
"fail": 2
}
}
我知道如何使用以下方法获取所有级别的套件列表中的通过和失败计数列表:
db.testruns.aggregate([
{ $unwind: "$suiteList" },
{ $group: { _id: "$suiteList.suiteStatus", count: { $sum: 1 } } }
]);
但我不确定如何实现我想要的预期输出。
【问题讨论】: