$toInt(转 32 位整数)
最后更新:2026-10-09
$toInt(转 32 位整数)
$toInt 把值转换为 32 位有符号整数(BSON int)。支持数字、数字字符串和布尔值转换;null 返回 null。典型场景包括把外部系统的整数字符串标准化、把浮点四舍五入为整数。超出 32 位范围(约正负 21 亿)会报错,大整数用 $toLong。字符串必须是整数形式,'4.5' 这类带小数的字符串会报错。它是 $convert 的 to: int 快捷写法。
| 分类 | 集合·条件·转换 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $toInt: <表达式> }
⚙️ 参数
| 表达式 | 数字、数字字符串或布尔值。 |
|---|
返回值:int 类型;输入为 null 时返回 null
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $toInt:把数量字符串转成整数
db.orders.aggregate([
{ $project: {
qty: { $toInt: '$qtyStr' }
} }
])
运行结果:
{ '_id': 1, 'qty': 3 }
📌 注意事项
- 32 位整数范围约正负 21 亿,超出报错,大数用 $toLong
- 字符串必须是整数形式,'4.5' 会报错
- true 转 1、false 转 0
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q超出 32 位范围会怎样?
A报错,改用 $toLong。
Q字符串 '4.5' 能转吗?
A不能,必须是整数形式,小数字符串报错。
Q和 $toLong 的区别?
A位宽不同:$toInt 32 位,$toLong 64 位。