$ceil(向上取整)
最后更新:2026-10-09
$ceil(向上取整)
$ceil返回大于或等于指定数值的最小整数,即向上取整。常用于分页计算、库存与容量估算等需要向上取整的场景,例如7.5件货必须备8件。参数为null或缺失时返回null;整数输入原样返回。注意它与$floor方向相反、与$trunc在负数时的行为不同:-1.2用$ceil得到-1,用$trunc得到-1,用$floor得到-2。
| 分类 | 数学 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $ceil: <数值表达式> }
⚙️ 参数
| 数值 | 数值或解析为数值的表达式。 |
|---|
返回值:大于等于输入的最小整数;null或缺失返回null
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $ceil:按每箱12件向上取整求箱数
db.orders.aggregate([
{ $project: {
boxes: { $ceil: { $divide: ['$quantity', 12] } }
} }
])
运行结果:
{ '_id': 1, 'boxes': 1 }
{ '_id': 2, 'boxes': 2 }
📌 注意事项
- 负数时与$floor方向相反:-1.2的$ceil是-1,$floor是-2
- 整数输入原样返回
- null或缺失参数返回null
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q$ceil和$floor有什么区别?
A$ceil向上取整、$floor向下取整;-1.2的$ceil是-1,$floor是-2。
Q$ceil对负数怎么处理?
A同样向上(向正方向)取整,-1.2得-1,-2.8得-2。
Q$ceil能指定保留小数位吗?
A不能,$ceil只能取整;要保留小数位用$round或$trunc的第二参数。