OK, dus de oplossing is om een geaggregeerde sleutel op te geven voor de _id-waarde. Dit wordt hier gedocumenteerd als:
U kunt een enkel veld opgeven uit de documenten in de pijplijn, een eerder berekende waarde of een aggregatiesleutel die is samengesteld uit verschillende binnenkomende velden.
Maar het definieert niet echt het formaat voor een geaggregeerde sleutel. Toen ik de eerdere documentatie hier las, zag ik dat de vorige collection.group-methode meerdere velden kon bevatten en dat dezelfde structuur wordt gebruikt in het nieuwe raamwerk.
Dus om over meerdere velden te groeperen kunt u _id : { success:'$success', responseCode:'$responseCode', label:'$label'}
gebruiken
Zoals in:
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 }
}}
);