如何在mgo bson中聚合字段类型map [string] uint32?

时间:2019-04-16 09:57:50

标签: mongodb go aggregate bson mgo

我正在尝试使用bson和Golang从mongo集合中获取聚合值,其中Golang中使用的字段类型为map[string]uint32

这是正在使用的结构,字段为Csat

type Conversations struct {
     ID   bson.ObjectId     `bson:"_id"`
     Csat map[string]uint32 `bson:"csat"`

}

使用bson的输出应该在键值对中,这些是我尝试过的一些示例,但是没有用,

1。

bson.M{

    "csat["1"]": bson.M{
        "$sum": bson.M{"$cond": []interface{}{bson.M{"$eq": []interface{}{"$score", 1}}, 1, 0}},
    },
    "csat["2"]": bson.M{
        "$sum": bson.M{"$cond": []interface{}{bson.M{"$eq": []interface{}{"$score", 2}}, 1, 0}},
    }

2。

bson.M{
        "csat": bson.M{
            "1": bson.M{
                "$sum": bson.M{"$cond": []interface{}{bson.M{"$eq": []interface{}{"$score", 1}}, 1, 0}},
            },
            "2": bson.M{
                "$sum": bson.M{"$cond": []interface{}{bson.M{"$eq": []interface{}{"$score", 2}}, 1, 0}},
            },
        }
    }

我希望它像{"csat": {"1": 3}, {"2": 2}, ...}一样存储,其中3和2可能是键的值。

如果以前有人做过这样的事情,请您帮帮我吗?

谢谢。

0 个答案:

没有答案