Portanto, sua agregação retorna todos os
comment
documentos no resultField
campo, que contém implicitamente o número de resultados, é uma fatia da qual você pode verificar o comprimento em Go usando o len()
embutido função. Como você só precisa do comprimento (número de
comment
documentos), é por isso que você deseja recuperar apenas o tamanho desse array. Para isso, você pode usar o $addFields
stage para substituir o resultField
array com um número sendo o comprimento deste array. 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"},
},
},
})
Observe que
$addFields
stage é equivalente a um $project
estágio que especifica explicitamente todos os campos existentes nos documentos de entrada e adiciona os novos campos. Disponível apenas desde a versão 3.4 do MongoDB.