Jadi agregasi Anda benar-benar mengembalikan semua comment dokumen di resultField bidang, yang secara implisit berisi jumlah hasil, itu adalah irisan yang panjangnya dapat Anda periksa di Go menggunakan len() bawaan fungsi.
Karena Anda hanya perlu panjang (jumlah comment dokumen), itu sebabnya Anda hanya ingin mengambil ukuran array ini. Untuk tujuan itu, Anda dapat menggunakan $addFields
panggung untuk menggantikan resultField larik dengan angka sebagai panjang larik ini.
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"},
},
},
})
Perhatikan bahwa $addFields stage setara dengan $project tahap yang secara eksplisit menentukan semua bidang yang ada di dokumen input dan menambahkan bidang baru. Hanya tersedia sejak MongoDB versi 3.4.