$trunc (切り捨て)
最終更新:2026-10-09
$trunc (切り捨て)
$trunc は数値の小数部を 0 方向に切り捨て、任意で小数点以下の桁数を維持します。値と任意の桁数引数を取り、規則は $round と同じです。セント単位の切り捨て、表示値の準備、ページングに使われます。$round と違い切り上げは一切行われず、2.9 は 2、-2.9 は -2 になります。正の数では $floor と同じですが、負の数では分岐します。$trunc では -1.2 が -1、$floor では -2 になります。
| カテゴリ | 数学 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $trunc: [ <value>, <place> ] }
⚙️ パラメータ
| 数値 | 数値、または数値に解決される式。 |
|---|---|
| 位置 | 任意の小数点以下の桁数。0 または省略時は整数に丸め、負の値は十の位以上に丸めます。 |
戻り値:切り捨てた値。null または欠落している場合は null
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $trunc: 金額の小数部を切り捨て
db.orders.aggregate([
{ $project: {
whole: { $trunc: '$price' }
} }
])
出力:
{ '_id': 1, 'whole': 19 }
{ '_id': 2, 'whole': 12 }
📌 注意事項
- 常に 0 方向へ、丸めず切り捨てる
- 負の数では $floor と異なる。$trunc(-1.2) は -1
- 桁数引数は負も受け付け、10 の位・100 の位に丸められる
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$trunc と $floor は負の数でどう違いますか?
A$trunc は 0 方向に切り捨て(-1.2 が -1)、$floor は負の無限大方向に丸めます(-1.2 が -2)。
Q$trunc と $round の違いは?
A$trunc は小数を単に切り捨て、$round は .5 の境界で丸めます。
Q$trunc で小数位を残せますか?
Aはい。第 2 引数で桁数を指定します。$trunc: [19.999, 2] は 19.99 になります。