$toInt (32 ビット整数への変換)
最終更新:2026-10-09
$toInt (32 ビット整数への変換)
$toInt は値を 32 ビット符号付き整数(BSON int)に変換します。数値、数値文字列、ブール値を受け付け、null は null のままです。代表的な用途は、外部システムの整数文字列の正規化や、浮動小数の整数への丸めです。32 ビットの範囲(約 21 億)を超える値はエラーになるため、大きな整数には $toLong を使います。文字列は整数リテラルである必要があり、'4.5' のような小数の文字列はエラーになります。to: int の $convert 短縮形です。
| カテゴリ | 集合・条件・変換 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $toInt: <expression> }
⚙️ パラメータ
| 式 | 数値、数値文字列、またはブール値。 |
|---|
戻り値: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 になる
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q32 ビットの範囲を超えると?
Aエラーになります。$toLong に切り替えてください。
Q文字列 '4.5' は変換できますか?
Aいいえ — 整数リテラルである必要があり、小数の文字列はエラーになります。
Q$toLong との違いは?
A幅が違います。$toInt は 32 ビット、$toLong は 64 ビットです。