Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

라운드(집계)

이 페이지의 내용

  • 정의
  • 행동
  • 예시
$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]은 소수점 둘째 자리로 반올림하여 1234.57을 반환합니다.

  • <place>가 음의 정수로 해석되는 경우 $round는 소수점 왼쪽에 있는 숫자 <place>를 사용하여 반올림합니다.

    예를 들어 $round : [1234.5678, -2]은 소수점 왼쪽의 두 번째 자리(3)를 사용하여 1200를 반환합니다.

    <place>의 절대값이 소수점 왼쪽 자릿수와 같거나 초과하는 경우 $round0을 반환합니다.

    예를 들어, $round : [ 1234.5678, -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으로 확인되면 $roundNaN을 반환합니다.

  • 인자가 음수 또는 양수 무한대로 해석되면 $round는 각각 음수 또는 양수 무한대를 반환합니다.

예시
결과
{ $round: [ NaN, 1] }
NaN
{ $round: [ null, 1] }
null
{ $round : [ Infinity, 1 ] }
Infinity
{ $round : [ -Infinity, 1 ] }
-Infinity

다음 문서를 사용하여 samples 라는 이름의 샘플 collection을 생성합니다.

db.samples.insertMany(
[
{ _id: 1, value: 19.25 },
{ _id: 2, value: 28.73 },
{ _id: 3, value: 34.32 },
{ _id: 4, value: -45.39 }
]
)
  • 다음 집계는 소수점 첫째 자리로 반올림된 value를 반환합니다.

    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

이 페이지의 내용