首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用mgov2进行Mongodb查询

使用mgov2进行Mongodb查询
EN

Stack Overflow用户
提问于 2017-08-18 13:21:32
回答 1查看 320关注 0票数 1

我收集了一系列在各种渠道上进行的终结点测试。该集合中的一个示例文档是:

{
    "_id" : ObjectId("59959b30c699811077751b12"),
    "teststatus" : "Fail",
    "channelname" : "HouseController",
    "timestamp" : ISODate("2017-08-17T13:15:53.170Z"),
    "testid" : "llpKIgIfiiquqkSApwNn"
}

我对此进行查询,以投影结果,如下所示:

[
  {
    "Fail": 20,
    "Success Count": 30,
    "Total": 50,
    "channel": "c3"
  }, ...

但是我得到了错误的成功和失败率的计数。我当前在golang中的查询如下所示:

o1:=  bson.M{
    "$project" :bson.M{
        "channel": "$channelname",
        "time":"$timestamp",
        "teststatus" : "$teststatus",
        "_id":1,
    },
}
o2:=  bson.M{
    "$group" :bson.M{
        "_id": "$channel",
        "Success": bson.M{
            "$sum":bson.M{ "$eq" :"teststatus","Pass"},
        },
        "Total": bson.M{
            "$sum": 1,
        },
    },
}
o3:=  bson.M{
    "$project" :bson.M{
        "channel": "$_id",
        "Success Count":"$Success",
        "Total" : "$Total",
        "_id":0,
        "Fail": bson.M{
            "$subtract": []interface{}{"$Total", "$Success"},
        },
    },
}

我在计算成功次数时做错了。我就是不知道怎么把它做好。我刚刚开始使用mgo和golang。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-18 15:48:05

您需要使用$cond来进行条件计数。例如,下面的示例在一个步骤中统计所有测试、失败的测试和成功的测试:

o2 := bson.M{
    "$group" :bson.M{
        "_id": "$channel",
        "Total": bson.M{
            "$sum": 1,
        },
        "Success": bson.M{"$sum": bson.M{
            "$cond": []interface{}{
                bson.M{ "$eq": []interface{}{"$teststatus", "Pass"}},
                1, 0,
            },
        }},
        "Fail": bson.M{"$sum": bson.M{
            "$cond": []interface{}{
                bson.M{"$eq": []interface{}{"$teststatus", "Fail"}},
                1, 0,
            },
        }},
    },
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45749030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档