Ainsi, votre agrégation renvoie en fait tous les comment
documents dans le resultField
champ, qui contient implicitement le nombre de résultats, c'est une tranche dont vous pouvez vérifier la longueur en Go en utilisant le len()
intégré fonction.
Puisque vous n'avez besoin que de la longueur (nombre de comment
documents), c'est pourquoi vous ne souhaitez récupérer que la taille de ce tableau. À cette fin, vous pouvez utiliser le $addFields
étape pour remplacer le resultField
tableau avec un nombre étant la longueur de ce tableau.
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"},
},
},
})
Notez que $addFields
stage est équivalent à un $project
étape qui spécifie explicitement tous les champs existants dans les documents d'entrée et ajoute les nouveaux champs. Disponible uniquement depuis la version 3.4 de MongoDB.