문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

toInt (집계)

이 페이지의 내용

  • 정의
  • 행동
  • 예제
$toInt

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

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

{
$toInt: <expression>
}

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

$toInt 은 다음 $convert 표현식의 약어입니다.

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

다음도 참조하세요.

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

입력 유형
행동
부울
false인 경우 0를 반환합니다.
true인 경우 1를 반환합니다.
더블

잘린 값을 반환합니다.

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

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

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(애그리게이션)

이 페이지의 내용