Isso ocorre porque o comando group realmente executa map/reduce e map/reduce é um javascript. No tipo de número padrão do javascript é um double, por isso ele retorna doubles.
Então você provavelmente pode envolver seus números com
NumberLong(..)
se você quiser ver por muito tempo no resultado do comando de grupo:{
...
initial: { count: new NumberLong(0) },
reduce: "function (o, a) { a.count += new NumberLong(o.count); }"
}
Não testei isso, mas quase certo que deve funcionar.