Så din sammenlægning returnerer faktisk alle comment
dokumenter i resultField
felt, som implicit indeholder antallet af resultater, det er et udsnit, som du kan kontrollere længden af i Go ved hjælp af den indbyggede len()
funktion.
Da du kun behøver længden (antal comment
). dokumenter), det er derfor, du kun ønsker at hente størrelsen af dette array. Til det formål kan du bruge $addFields
trin for at erstatte resultField
matrix, hvor et tal er længden af denne matrix.
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"},
},
},
})
Bemærk, at $addFields
fase svarer til et $project
trin, der eksplicit specificerer alle eksisterende felter i inputdokumenterne og tilføjer de nye felter. Kun tilgængelig siden MongoDB version 3.4.