MongoDB Aggregation Framework doesn't have floor function.
It only has simple arithmetic operators.
So, how to compose floor function using them?
According to definition floor(number) = number - (number % step) we can compose our aggregation formula:
{$subtract: ["$number", {$mod: ["$number", <step>]}]}
where step is order of magnitude. First, it computes remainder with $mod and then it computes difference with $subtract.
So, grouping Users by age floored to whole numbers will be
db.users.aggregate(
{$group: {_id: {$subtract: ["$age", {$mod: ["$age", 1]}] }}} )
If you want to floor to 10s or 1000s use 10 or 1000 instead of 1.
来源:https://stackoverflow.com/questions/32554156/how-to-aggregate-by-floor-in-mongodb