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

$trunc(集計)

項目一覧

  • 定義
  • 構文
  • 動作
$trunc

$truncは、数値を整数または指定された小数点以下の桁に切り捨てます。

$trunc演算子の構文は次のとおりです。

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

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

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

<place>
integer

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

  • <place>が正の整数に解決される場合、 $trunc<place>桁に切り捨てられます。

    たとえば、 $trunc : [1234.5678, 2]は小数点以下2桁に切り捨てて1234.56を返します。

  • <place>が負の整数に解決される場合、 $truncは小数点の左の<place>桁を0に置き換えます。

    たとえば、 $trunc : [1234.5678, -2]は小数の左の 2 桁に0を置き換え、 1200を返します。

  • <place>の絶対値が小数点の左側の桁数を超える場合、 $trunc0を返します。

    たとえば、 $trunc : [ 1234.5678, -5]は小数の左 5 桁を指定します。 これは小数の左の桁数を超え、 0を返します。

  • <place>0に解決される場合、 $truncは小数点の右側にあるすべての数字を切り捨て、整数値を返します。

    たとえば、 $trunc : [1234.5678, 0]1234を返します

<number>式は、数値に変換される限り、どのような有効なでもかまいません。 式の詳細については、「式 」を参照してください。

$truncは切り捨てられたデータを丸めません。 入力値を指定した場所で丸めると、 $round式を使用します。

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

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

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

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

結果
{ $trunc: [ NaN, 1] }
NaN
{ $trunc: [ null, 1] }
null
{ $trunc : [ Infinity, 1 ] }
Infinity
{ $trunc : [ -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.34 }
]
)
  • 次の集計では、 valueを小数第1位で切り捨てて返します。

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

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

    { "_id" : 1, "truncatedValue" : 19.2 }
    { "_id" : 2, "truncatedValue" : 28.7 }
    { "_id" : 3, "truncatedValue" : 34.3 }
    { "_id" : 4, "truncatedValue" : -45.3 }
  • 次の集計では、第 1 位に切り捨てられたvalueが返されます。

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

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

    { "_id" : 1, "truncatedValue" : 10 }
    { "_id" : 2, "truncatedValue" : 20 }
    { "_id" : 3, "truncatedValue" : 30 }
    { "_id" : 4, "truncatedValue" : -40 }
  • 次の集計では、整数に切り捨てられた ``value`` が返されます。

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

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

    { "_id" : 1, "truncatedValue" : 19 }
    { "_id" : 2, "truncatedValue" : 28 }
    { "_id" : 3, "truncatedValue" : 34 }
    { "_id" : 4, "truncatedValue" : -45 }

戻る

$trim