Ваша структура запроса mgo
в порядке, проблема в имени поля count
.Модель ожидает Value
:
var result []struct {
Status string `bson:"_id"`
Value int
}
Поэтому измените этап $group
на следующий:
grp := bson.M{
"$group": bson.M{
"_id": "$status",
"value": bson.M{ // Note lowercased "value"!
"$sum": 1,
},
},
}
И это должно работать.Или измените модель, если вы можете:
var result []struct {
Status string `bson:"_id"`
Value int `bson:"count"`
}
Необходимо изменить только одну из них, чтобы выровнять ее с другой.
И последнее: если вы используете Query.One()
,тогда result
не должен быть срезом (One()
ожидает только один документ).
Используйте тип среза для result
, если вы используете, например, Query.All()
.
Так что есливы собираетесь использовать Query.One()
, используйте результат:
var result struct {
Status string `bson:"_id"`
Value int `bson:"count"`
}
Также Query.One()
и Query.All()
возвращают ошибку, проверьте ее!