정의
$trunc$trunctruncates a number to a whole integer or to a specified decimal place.
구문
$trunc 연산자의 구문은 다음과 같습니다.
{ $trunc : [ <number>, <place> ] }
필드 | 유형 | 설명 |
|---|---|---|
| 숫자 | |
| integer | 선택 사항 20 ~ 100 사이의 정수로 해석되는 모든 유효한 표현식 일 수 있으며, 배타적입니다. 예를 들어
|
<number> 표현식은 숫자로 해석되는 한 모든 유효한 표현식 일 수 있습니다. 표현식에 대한 자세한 내용은 표현식을 참조하세요 .
행동
$trunc does not round the truncated data. To round input values to a specified place, use the $round expression.
반환된 데이터 유형
반환된 데이터 유형 은 입력 표현식 또는 값의 데이터 유형 유형과 일치합니다.
부동 소수점 숫자를 사용한 잘라내기 정밀도
소수점 구분 기호 뒤에 20 자리가 포함된 배정밀도 부동 점 숫자 4.56 를 인쇄하면 4.55999999999999960920가 표시되며, 이는 4.56 보다 약간 작으며 4.55로 잘립니다.
MongoDB 부동 점 계산에 IEEE 754 표준을 사용하며 동작은 해당 표준과 일관적인 합니다.
If you need a floating point number for an application that requires high precison, consider a Decimal128 value. For details, see BSON.Decimal128.
통화 값을 저장 해야 하는 경우 가장 낮은 통화 표시 단위를 사용하는 정수를 고려하세요. 예시 들어, 부동 점 숫자 대신 센트 또는 페니가 포함된 정수를 사용합니다.
null, NaN 및 +/- Infinity
If the argument resolves to a value of
nullor refers to a field that is missing,$truncreturnsnull.If the argument resolves to
NaN,$truncreturnsNaN.If the argument resolves to negative or positive infinity,
$truncreturns negative or positive infinity respectively.
예시 | 결과 |
|---|---|
|
|
|
|
|
|
|
|
예시
다음 문서를 사용하여 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 }