亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 $group 聚合計算數據中的記錄總數

如何使用 $group 聚合計算數據中的記錄總數

Go
守候你守候我 2023-05-08 18:12:58
我正在嘗試使用 golang mgo 包執行查詢以有效地從 $group 聚合中獲取相似值并計算總記錄值。但我無法獲取分組數據的總記錄數。我的結構是這樣的:{    "data": [        {            "_id": 366,            "logs": [                {                    "id": 113,                    "booking_id": 366,                    "provider_id": 13,                    "cid": 11,                    "type": "basic",                    "time": 1542793756,                },                {                    "id": 116,                    "booking_id": 366,                    "provider_id": 13,                    "cid": 0,                    "type": "type2",                }            ]        },        {            "_id": 362,            "logs": [                {                    "id": 104,                    "booking_id": 362,                    "provider_id": 7,                    "cid": 10,                    "type": "basic",                    "time": 1542776677,                }            ]        },        {            "_id": 370,            "logs": [                {                    "id": 111,                    "booking_id": 370,                    "provider_id": 9,                    "cid": 11,                    "type": "basic",                    "time": 1542792661,                },                {                    "id": 112,                    "booking_id": 370,                    "provider_id": 11,                    "cid": 11,                    "type": "basic",                    "time": 1542793185,                }            ]       }    ],     "total_record": 2   }為此,我想要在數據中預設總記錄::"total_record":3 查詢我正在使用 ::query := []bson.M{        {"$group": bson.M{        "_id":  "$booking_id",        "logs": bson.M{ "$push": "$$ROOT" }        "count": bson.M{"$sum":1},        }},    }    pipe := getCollection.Pipe(query)    err = pipe.AllowDiskUse().One(&result)我想要這個結果的總數。日志部分包含具有不同“provider_id”值的重復預訂數據,但我已將所有類似的 booking_id 數據分組在單個文檔中并顯示它的計數。$group 聚合有可能嗎?
查看完整描述

1 回答

?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

您可以使用 $count 聚合來查找數據中的總記錄,鏈接


要計算分組數據的總數,可以在分組數據后使用 $count 聚合。如果你想要總計數,你的查詢應該是這樣的data::


query := []bson.M{

        {"$group": bson.M{

        "_id":  "$booking_id",

        }},

        {"$count" : "count"},

    }


    pipe := getCollection.Pipe(query)

    err = pipe.AllowDiskUse().One(&result)

要計算每個記錄中的記錄,"logs"您可以使用查詢如下:


query := []bson.M{

        {"$group": bson.M{

        "_id":  "$booking_id",

        "logs": bson.M{ "$push": "$$ROOT" },

        "count": bson.M{"$sum":1},

        }},

    }


    pipe := getCollection.Pipe(query)

    err = pipe.AllowDiskUse().One(&result)


查看完整回答
反對 回復 2023-05-08
  • 1 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號