Така че вашето агрегиране всъщност връща всички comment документи в resultField поле, което имплицитно съдържа броя на резултатите, то е част от която можете да проверите дължината в Go с помощта на вградения len() функция.
Тъй като имате нужда само от дължината (броя на comment документи), затова искате да извлечете само размера на този масив. За тази цел можете да използвате $addFields
етап за замяна на resultField масив с число, което е дължината на този масив.
pipe := c.Pipe([]bson.M{
{
"$lookup": bson.M{
"from": "comment",
"localField": "_id",
"foreignField": "post_id",
"as": "resultField",
},
},
{
"$addFields": bson.M{
"resultField": bson.M{"$size": "$resultField"},
},
},
})
Имайте предвид, че $addFields етап е еквивалентен на $project етап, който изрично указва всички съществуващи полета във входните документи и добавя новите полета. Предлага се само от MongoDB версия 3.4.