OK, så lösningen är att ange en aggregerad nyckel för _id-värdet. Detta dokumenteras här som:
Du kan ange ett enstaka fält från dokumenten i pipelinen, ett tidigare beräknat värde eller en aggregerad nyckel som består av flera inkommande fält.
Men det definierar faktiskt inte formatet för en aggregerad nyckel. När jag läste den tidigare dokumentationen här såg jag att den tidigare metoden collection.group kunde ta flera fält och att samma struktur används i det nya ramverket.
Så för att gruppera över flera fält kan du använda _id : { success:'$success', responseCode:'$responseCode', label:'$label'}
Som i:
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 }
}}
);