Questo perché il comando di gruppo esegue effettivamente map/reduce e map/reduce è un javascript. Nel javascript il tipo di numero predefinito è double, per questo restituisce double.
Quindi probabilmente puoi avvolgere i tuoi numeri con NumberLong(..)
se vuoi vedere il risultato del comando di gruppo lungo:
{
...
initial: { count: new NumberLong(0) },
reduce: "function (o, a) { a.count += new NumberLong(o.count); }"
}
Non l'ho testato, ma quasi sicuro che dovrebbe funzionare.