$toDouble (Double への変換)
最終更新:2026-10-09
$toDouble (Double への変換)
$toDouble は値を BSON の double に変換します。数値、数値文字列、ブール値、日付を受け付け、null は null のままです。代表的な用途は、CSV からインポートした文字列の数値を集計用に数値化したり、整数を浮動小数に拡張して割り算で小数を残したりすることです。文字列は有効な数値リテラルである必要があり、そうでなければ変換はエラーになります。to: double の $convert 短縮形です。金額には $toDecimal を優先してください。
| カテゴリ | 集合・条件・変換 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $toDouble: <expression> }
⚙️ パラメータ
| 式 | 数値、数値文字列、ブール値、または日付。 |
|---|
戻り値:double。入力が null の場合は null
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $toDouble: 文字列のスコアを数値に変換
db.reviews.aggregate([
{ $project: {
score: { $toDouble: '$scoreStr' }
} }
])
出力:
{ '_id': 1, 'score': 4.5 }
📌 注意事項
- 文字列は '4.5' のような有効な数値である必要がある。'abc' はエラー
- double の精度には限界がある。金額には $toDecimal を使う
- ブール値は 1.0 と 0.0 に変換される
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q文字列 '4.5' は変換できますか?
Aはい — 有効な数値リテラルであれば変換できます。
Q金額に $toDouble を使うべきですか?
A$toDecimal を優先してください — double には精度誤差があります。
Qnull は何を返しますか?
Anull を返します。