$floor(向下取整)
最后更新:2026-10-09
$floor(向下取整)
$floor返回小于或等于指定数值的最大整数,即向下取整。常用于金额向下舍、统计下限、分桶等场景,例如按10分位向下取整做价格分桶。参数为null或缺失时返回null;整数输入原样返回。与$ceil方向相反:-1.2的$floor是-2,$ceil是-1;与$trunc也不同,$trunc是向零截断,-1.2的$trunc是-1。
| 分类 | 数学 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $floor: <数值表达式> }
⚙️ 参数
| 数值 | 数值或解析为数值的表达式。 |
|---|
返回值:小于等于输入的最大整数;null或缺失返回null
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $floor:价格向下取整到整数元
db.products.aggregate([
{ $project: {
priceFloor: { $floor: '$price' }
} }
])
运行结果:
{ '_id': 1, 'priceFloor': 9 }
{ '_id': 2, 'priceFloor': 12 }
📌 注意事项
- 与$ceil互为反方向,负数场景差异明显
- 与$trunc不同:$floor向负无穷取整,$trunc向零截断
- 整数输入原样返回
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q$floor和$trunc对负数有什么区别?
A$floor向负无穷取整(-1.2得-2),$trunc向零截断(-1.2得-1)。
Q$floor对null返回什么?
A返回null,不会报错。
Q$floor能指定保留小数位吗?
A不能;要保留小数位用$round或$trunc。