如何在MongoDB中按楼层汇总

Rom*_*hin 3 mongodb mongo-shell mongodb-query aggregation-framework

MongoDB聚合框架没有floor功能.它只有简单的算术运算符.那么,如何floor使用它们来组合函数呢?

Rom*_*hin 7

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

{$subtract: ["$number", {$mod: ["$number", <step>]}]}
Run Code Online (Sandbox Code Playgroud)

在哪里step是数量级.首先,它计算余数,$mod然后计算差异$subtract.

因此,通过对用户分组age地板到整体数字会

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

如果你想要10s或1000s的地板使用10或1000而不是1.