$trunc (애그리게이션)
정의
$trunc
$trunc
은 숫자를 정수로 자르 거나 지정된 소수점 이하 자릿수로 자릅니다.
구문
$trunc
연산자의 구문은 다음과 같습니다.
{ $trunc : [ <number>, <place> ] }
필드 | 유형 | 설명 |
---|---|---|
<number> | 숫자 | 숫자로 해석되는 모든 유효한 표현식 일 수 있습니다. 구체적으로 표현식은 정수, 이중,
|
<place> | integer | 선택 사항 20 ~ 100 사이의 정수로 해석되는 모든 유효한 표현식 일 수 있으며, 배타적입니다. 예를 들어
|
<number>
표현식은 숫자로 해석되는 한 모든 유효한 표현식 일 수 있습니다. 표현식에 대한 자세한 내용은 표현식을 참조하세요 .
행동
$trunc
은 잘린 데이터를 반올림하지 않습니다. 입력 값을 지정된 자리로 반올림하려면 $round
표현식을 사용합니다.
반환된 데이터 유형
반환된 데이터 유형은 입력 표현식 또는 값의 데이터 유형과 일치합니다.
null
, NaN
및 +/- Infinity
인수가
null
값으로 확인되거나 누락된 필드를 참조하는 경우$trunc
는null
을 반환합니다.인수가
NaN
으로 확인되면$trunc
는NaN
를 반환합니다.인수가 음수 또는 양의 무한대로 해석되는 경우
$trunc
은 각각 음수 또는 양의 무한대를 반환합니다.
예제 | 결과 |
---|---|
{ $trunc: [ NaN, 1] } | NaN |
{ $trunc: [ null, 1] } | null |
{ $trunc : [ Infinity, 1 ] } | Infinity |
{ $trunc : [ -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.34 } ] )
다음 애그리게이션은 소수점 첫째 자리에서 잘린
value
를 반환합니다.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 } 다음 애그리게이션은 첫 번째 위치로 잘린
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 } 다음 집계는 전체 정수로 잘린 '값'을 반환합니다.
db.samples.aggregate([ { $project: { truncatedValue: { $trunc: [ "$value", 0 ] } } } ]) 이 연산은 다음과 같은 결과를 반환합니다.
{ "_id" : 1, "truncatedValue" : 19 } { "_id" : 2, "truncatedValue" : 28 } { "_id" : 3, "truncatedValue" : 34 } { "_id" : 4, "truncatedValue" : -45 }