我正在尝试使用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可能是键的值。
如果以前有人做过这样的事情,请您帮帮我吗?
谢谢。