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

toInt (집계)

이 페이지의 내용

  • 정의
  • 행동
  • 예시
$toInt

값을 정수로 변환합니다. 값을 정수로 변환할 수 없는 경우 $toInt 오류가 발생합니다. 값이 null이거나 누락된 경우 $toInt는 null을 반환합니다.

$toInt 의 구문은 다음과 같습니다:

{
$toInt: <expression>
}

$toInt는 유효한 표현식을 사용합니다.

$toInt는 다음 $convert 표현식의 약칭입니다.

{ $convert: { input: <expression>, to: "int" } }

다음도 참조하세요.

다음 표에는 정수로 변환할 수 있는 입력 유형이 나열되어 있습니다.

입력 유형
행동

부울

Returns 0 for false.
Returns 1 for true.

Double

잘린 값을 반환합니다.

잘린 double 값은 정수의 최소값과 최대값 내에 속해야 합니다.

최소 정수 값보다 작거나 최대 정수 값보다 큰 double 값은 변환할 수 없습니다.

10진수

잘린 값을 반환합니다.

잘린 10진수 값은 정수의 허용 범위 내에 있어야 합니다.

최소 정수 값보다 작거나 최대 정수 값보다 큰 소숫값은 변환할 수 없습니다.

Integer

아니요. 정수 값을 반환합니다.

Long

긴 값을 정수로 반환합니다.

long 값은 정수의 최소값과 최대값 내에 있어야 합니다.

최소 정수 값보다 작거나 최대 정수 값보다 큰 Long 값은 변환할 수 없습니다.

문자열

문자열의 숫자 값을 정수로 반환합니다.

문자열 값은 기본 10진수여야 합니다. (예를 들면, "-5", "123456")

부동소수점, 10진수, 10이 아닌 밑수의 문자열 값(예: "-5.0", "0x6400")

다음 표에는 정수로 변환하는 몇 가지 예가 나와 있습니다:

예시
결과

$toInt: true

1

$toInt: false

0

$toInt: 1.99999

1

$toInt: NumberDecimal("5.5000")

5

$toInt: NumberDecimal("9223372036000.000")

오류

$toInt: NumberLong("5000")

5000

$toInt: NumberLong("922337203600")

오류

$toInt: "-2"

-2

$toInt: "2.5"

오류

$toInt: null

null

다음 문서를 사용하여 컬렉션 orders를 생성합니다.

db.orders.insertMany( [
{ _id: 1, item: "apple", qty: "5", price: 10 },
{ _id: 2, item: "pie", qty: "10", price: NumberDecimal("20.0") },
{ _id: 3, item: "ice cream", qty: "2", price: "4.99" },
{ _id: 4, item: "almonds" , qty: "5", price: 5 }
] )

다음 집계 작업은 다음과 같습니다.

  • qty을 정수로 변환합니다,

  • price을 소수로 변환합니다,

  • 는 총 가격을 계산합니다.

// Define stage to add convertedPrice and convertedQty fields with the converted price and qty values
priceQtyConversionStage = {
$addFields: {
convertedPrice: { $toDecimal: "$price" },
convertedQty: { $toInt: "$qty" },
}
};
// Define stage to calculate total price by multiplying convertedPrice and convertedQty fields
totalPriceCalculationStage = {
$project: { item: 1, totalPrice: { $multiply: [ "$convertedPrice", "$convertedQty" ] } }
};
db.orders.aggregate( [
priceQtyConversionStage,
totalPriceCalculationStage
] )

이 작업은 다음 문서를 반환합니다.

{ _id: 1, item: 'apple', totalPrice: Decimal128("50") },
{ _id: 2, item: 'pie', totalPrice: Decimal128("200.0") },
{ _id: 3, item: 'ice cream', totalPrice: Decimal128("9.98") },
{ _id: 4, item: 'almonds', totalPrice: Decimal128("25") }

참고

변환 작업에 오류가 발생하면 집계 작업이 중지되고 오류가 발생합니다. 이 동작을 재정의하려면 $convert 를 대신 사용하세요.

돌아가기

$toHashedIndexKey

이 페이지의 내용