如何在 MongoDB 中按楼层汇总

How to aggregate by floor in MongoDB

MongoDB 聚合框架没有 floor 功能。 它只有简单的arithmetic operators。 那么,如何使用它们组合 floor 函数呢?

根据定义floor(number) = number - (number % step)我们可以组成我们的聚合公式:

{$subtract: ["$number", {$mod: ["$number", <step>]}]}

其中 step 是数量级。首先,它用 $mod 计算余数,然后用 $subtract.

计算差值

因此,按 age 将用户分组到 整个 个数字将是

db.users.aggregate(
    {$group: {_id: {$subtract: ["$age", {$mod: ["$age", 1]}] }}} )

如果你想降低到 10 或 1000,请使用 10 或 1000 而不是 1。