$toDouble(转双精度浮点数)
最后更新:2026-10-09
$toDouble(转双精度浮点数)
$toDouble 把值转换为双精度浮点数(BSON double)。支持数字、数字字符串、布尔和日期转换;null 返回 null。典型场景包括把 CSV 导入的字符串数值转成数字参与聚合、把整数提升为浮点以便除法保留小数。字符串必须是合法数字形式,非法值报错。它是 $convert 的 to: double 快捷写法,金额类高精度计算建议改用 $toDecimal。
| 分类 | 集合·条件·转换 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $toDouble: <表达式> }
⚙️ 参数
| 表达式 | 数字、数字字符串、布尔或日期。 |
|---|
返回值:double 类型;输入为 null 时返回 null
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $toDouble:把字符串评分转成数值
db.reviews.aggregate([
{ $project: {
score: { $toDouble: '$scoreStr' }
} }
])
运行结果:
{ '_id': 1, 'score': 4.5 }
📌 注意事项
- 字符串必须是合法数字,如 '4.5';'abc' 报错
- double 精度有限,金额计算用 $toDecimal
- 布尔 true 转 1.0、false 转 0.0
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q字符串 '4.5' 能转吗?
A能,只要是合法数字形式。
Q金额能用 $toDouble 吗?
A建议用 $toDecimal,double 有精度误差。
Qnull 返回什么?
A返回 null。