Я пытаюсь выполнить запрос с использованием пакета 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?