Điều này là do lệnh nhóm thực sự chạy bản đồ / giảm và bản đồ / giảm là một javascript. Trong javascript, loại số mặc định là số kép, do đó nó trả về gấp đôi.
Vì vậy, bạn có thể bọc các số của mình bằng NumberLong(..)
nếu bạn muốn xem lâu trong kết quả lệnh nhóm:
{
...
initial: { count: new NumberLong(0) },
reduce: "function (o, a) { a.count += new NumberLong(o.count); }"
}
Chưa kiểm tra điều này, nhưng gần như chắc chắn rằng nó sẽ hoạt động.