Tak więc Twoja agregacja faktycznie zwraca wszystkie comment
dokumenty w resultField
pole, które niejawnie zawiera liczbę wyników, jest to wycinek, którego długość można sprawdzić w Go za pomocą wbudowanej funkcji len()
funkcja.
Ponieważ potrzebujesz tylko długości (liczba comment
dokumentów), dlatego chcesz pobrać tylko rozmiar tej tablicy. W tym celu możesz użyć $addFields
etap do zastąpienia resultField
tablica z liczbą będącą długością tej tablicy.
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"},
},
},
})
Pamiętaj, że $addFields
stage jest odpowiednikiem $project
etap, który wyraźnie określa wszystkie istniejące pola w dokumentach wejściowych i dodaje nowe pola. Dostępne tylko od wersji MongoDB 3.4.