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.