Entonces, su agregación en realidad devuelve todos los comment
documentos en el resultField
campo, que implícitamente contiene el número de resultados, es una parte de la cual puede verificar la longitud en Go usando el len()
incorporado función.
Dado que solo necesita la longitud (número de comment
documentos), es por eso que solo desea recuperar el tamaño de esta matriz. Para ese propósito, puede usar el $addFields
escenario para reemplazar el resultField
matriz con un número que es la longitud de esta matriz.
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"},
},
},
})
Tenga en cuenta que $addFields
etapa es equivalente a un $project
etapa que especifica explícitamente todos los campos existentes en los documentos de entrada y agrega los nuevos campos. Disponible solo desde MongoDB versión 3.4.