如何在 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。
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。