これは、groupコマンドが実際にmap / reduceを実行し、map/reduceがjavascriptであるためです。 javascriptでは、デフォルトの数値タイプはdoubleです。これにより、doubleが返されます。
したがって、おそらくNumberLong(..)
で数値をラップできます。 グループコマンドの結果を長く表示したい場合:
{
...
initial: { count: new NumberLong(0) },
reduce: "function (o, a) { a.count += new NumberLong(o.count); }"
}
これはテストされていませんが、動作するはずです。