Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

$round(集計)

項目一覧

  • 定義
  • 動作
$round

$round は、数値を整数または指定された小数点以下の桁に四捨五入します。

$round の構文は次のとおりです。

{ $round : [ <number>, <place> ] }
フィールド
タイプ
説明
<number>
数値

数値に変換される有効なであればどれでもかまいません。 具体的には、式は整数、double、 decimal 、またはlongに変換される必要があります。

$round 式が数値以外のデータ型に解決された場合はエラーを返します。

<place>
integer

任意 -20から100までの整数(排他的)に変換される有効な であればどれでもかまいません。例-20 < place < 100。指定しない場合、デフォルトは 0 です。

  • <place>が正の整数に解決される場合、 $roundは小数点以下<place>桁に丸められます。

    たとえば、 $round : [1234.5678, 2] 小数点以下2桁に丸められ、 1234.57 が返されます。

  • <place>が負の整数に解決される場合、 $roundでは小数点の左側の数字<place>を使用して丸められます。

    たとえば、 $round : [1234.5678, -2] は小数点の左側にある2桁目(3)を使用し、 1200 を返します。

    <place>の絶対値が小数点の左側の桁数に等しいかそれを超える場合、 $round0を返します。

    たとえば、 $round : [ 1234.5678, -4] 小数点の左側の4番目の桁を指定します。これは小数の左の桁数に等しく、0 を返します。

  • <place>0に解決される場合、 $roundは小数点の右側の最初の桁を使用して丸め、丸められた整数値を返します。

    たとえば、 $round : [1234.5678, 0]1235を返します。

5が丸められる場合、 $roundでは最も近い偶数値に丸められます。例えば、次のサンプル ドキュメントについて考えてみます。

{_id : 1, "value" : 10.5},
{_id : 2, "value" : 11.5},
{_id : 3, "value" : 12.5},
{_id : 4, "value" : 13.5}

$round : [ "$value", 0] は以下を返します。

{_id : 1, "value" : 10},
{_id : 2, "value" : 12},
{_id : 3, "value" : 12},
{_id : 4, "value" : 14}

10.5 は偶数値 10に最も近い値であり、値 11.512.5 は偶数値 12に最も近い値です。最も近い偶数値に丸めると、四捨五入されたデータが、通常の切り上げまたは切り捨てよりも均等に分散されます。

返されるデータ型は、入力式または値のデータ型と一致します。

  • 最初の引数がnullの値に解決されるか、欠落しているフィールドを参照している場合、 $roundnullを返します。

  • 最初の引数がNaNに解決された場合、 $round NaNを返します。

  • 最初の引数が負の無限大または正の無限大に解決された場合、 $roundそれぞれ負の無限大または正の無限大を返します。

結果
{ $round: [ NaN, 1] }
NaN
{ $round: [ null, 1] }
null
{ $round : [ Infinity, 1 ] }
Infinity
{ $round : [ -Infinity, 1 ] }
-Infinity

次のドキュメントを含むsamplesという名前のコレクションを作成します。

db.samples.insertMany(
[
{ _id: 1, value: 19.25 },
{ _id: 2, value: 28.73 },
{ _id: 3, value: 34.32 },
{ _id: 4, value: -45.39 }
]
)
  • 次の集計は、valueを小数第1位で丸めたものを返します。

    db.samples.aggregate([
    { $project: { roundedValue: { $round: [ "$value", 1 ] } } }
    ])

    この操作は次の結果を返します。

    { "_id" : 1, "roundedValue" : 19.2 }
    { "_id" : 2, "roundedValue" : 28.7 }
    { "_id" : 3, "roundedValue" : 34.3 }
    { "_id" : 4, "roundedValue" : -45.4 }
  • 次の集計は、小数点の左側の最初の桁を使用して丸められたvalueを返します。

    db.samples.aggregate([
    { $project: { roundedValue: { $round: [ "$value", -1 ] } } }
    ])

    この操作は次の結果を返します。

    { "_id" : 1, "roundedValue" : 10 }
    { "_id" : 2, "roundedValue" : 20 }
    { "_id" : 3, "roundedValue" : 30 }
    { "_id" : 4, "roundedValue" : -50 }
  • 次の集計では、整数に丸められたvalueが返されます。

    db.samples.aggregate([
    { $project: { roundedValue: { $round: [ "$value", 0 ] } } }
    ])

    この操作は次の結果を返します。

    { "_id" : 1, "roundedValue" : 19 }
    { "_id" : 2, "roundedValue" : 29 }
    { "_id" : 3, "roundedValue" : 34 }
    { "_id" : 4, "roundedValue" : -45 }

戻る

$reverseArray

項目一覧