2 回答

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
group :=[]bson.M{bson.M{
"$group": bson.M{
"_id":bson.M{
"field1": "$field1",
"field2": "$field2"
}
}
},
bson.M {
"$group": bson.M{
"_id":nil,
"count": bson.M{
"$sum":1
}
}
}
}
cursor, err := coll.Aggregate(context.Background(), mongo.Pipeline{group})
if err != nil {
log.Fatal(err)
}
嘗試上述解決方案,它會(huì)工作。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊
為了補(bǔ)充公認(rèn)的解決方案,我將與光標(biāo)迭代和解碼共享完整代碼。我將其更改"_id": nil為"_id": ""接收字符串并能夠毫無問題地解碼為結(jié)構(gòu)。
pipeline := []bson.M{
{
"$group": bson.M{"_id": bson.M{"field1": "$field1", "field2": "$field2"}},
},
{
"$group": bson.M{"_id": "", "count": bson.M{"$sum": 1}},
},
}
cursor, err := coll.Aggregate(ctx, pipeline)
if err != nil {
return err
}
type Result struct {
ID string `bson:"_id"`
Count int `bson:"count"`
}
var res Result
for cursor.Next(ctx) {
err := cursor.Decode(&res)
if err != nil {
return err
}
fmt.Printf("Element %v", res)
}
- 2 回答
- 0 關(guān)注
- 213 瀏覽
添加回答
舉報(bào)