Я пытаюсь получить агрегированные значения из коллекции монго, используя bson и Golang, где поле, используемое в 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 могут быть значениями.
Если кто-то делал что-то подобное раньше, можете ли вы помочьменя нет?
Спасибо.