Je to proto, že příkaz group ve skutečnosti spouští map/reduce a map/reduce je javascript. V javascriptu je výchozí typ čísla double, proto vrací double.
Takže pravděpodobně můžete svá čísla zabalit pomocí NumberLong(..)
pokud chcete ve výsledku skupinového příkazu vidět dlouhé:
{
...
initial: { count: new NumberLong(0) },
reduce: "function (o, a) { a.count += new NumberLong(o.count); }"
}
Netestováno, ale téměř jisté, že by to mělo fungovat.