Oke, jadi solusinya adalah menentukan kunci agregat untuk nilai _id. Ini didokumentasikan di sini sebagai:
Anda dapat menentukan satu bidang dari dokumen dalam saluran, nilai yang dihitung sebelumnya, atau kunci agregat yang dibuat dari beberapa bidang yang masuk.
Tapi itu tidak benar-benar menentukan format untuk kunci agregat. Membaca dokumentasi sebelumnya di sini, saya melihat bahwa metode collection.group sebelumnya dapat mengambil banyak bidang dan struktur yang sama digunakan dalam kerangka kerja baru.
Jadi, untuk mengelompokkan beberapa bidang, Anda dapat menggunakan _id : { success:'$success', responseCode:'$responseCode', label:'$label'}
Seperti dalam:
resultsCollection.aggregate(
{ $match : { testid : testid} },
{ $skip : alreadyRead },
{ $project : {
timeStamp : 1 ,
label : 1,
responseCode : 1 ,
value : 1,
success : 1
}},
{ $group : {
_id : { success:'$success', responseCode:'$responseCode', label:'$label'},
max_timeStamp : { $timeStamp : 1 },
count_responseCode : { $sum : 1 },
avg_value : { $sum : "$value" },
count_success : { $sum : 1 }
}}
);