Ihre Aggregation gibt also tatsächlich alle comment
zurück Dokumente im resultField
Feld, das implizit die Anzahl der Ergebnisse enthält, ist es ein Stück, dessen Länge Sie in Go mit dem eingebauten len()
überprüfen können Funktion.
Da Sie nur die Länge benötigen (Anzahl comment
Dokumente), deshalb möchten Sie nur die Größe dieses Arrays abrufen. Zu diesem Zweck können Sie $addFields
verwenden
Stufe, um das resultField
zu ersetzen Array mit einer Zahl, die die Länge dieses Arrays darstellt.
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"},
},
},
})
Beachten Sie, dass $addFields
stage entspricht einem $project
Phase, die alle vorhandenen Felder in den Eingabedokumenten explizit angibt und die neuen Felder hinzufügt. Nur verfügbar seit MongoDB Version 3.4.