Jag har det resultat som jag tror du ville ha med följande:
GroupBy groupBy = GroupBy.key("a", "b", "c")
.initialDocument("{ total: 0 }")
.reduceFunction("function(obj, result) { " +
" result.a = obj.a; " +
" result.b = obj.b; " +
" result.c = obj.c; " +
" result.total += obj.total; " +
"}");
Observera att det du behöver göra är att tala om för reduceringsfunktionen vad som ska läggas in i a-, b- och c-fälten samt det totala fältet.
Detta gav mig en råproduktion av:
{ "a" : 10.0 , "b" : 20.0 , "c" : 30.0 , "total" : 300.0}
Eftersom du inte har inkluderat den grupperade klassen är jag inte säker på om denna mappar exakt till det objekt du ville ha, men det kan peka dig i rätt riktning.