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

toLong(집계)

이 페이지의 내용

  • 정의
  • 행동
  • 예시
$toLong

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

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

{
$toLong: <expression>
}

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

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

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

다음도 참조하세요.

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

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

입력 유형
행동
부울
Returns Long(0) for false.
Returns Long(1) for true.
Double

잘린 값을 반환합니다.

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

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

10진수

잘린 값을 반환합니다.

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

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

Integer
int 값을 길이로 반환합니다.
Long
아니요. 긴 값을 반환합니다.
문자열

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

문자열 값은 기본 10 길이여야 합니다(예: "-5", "123456").

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

날짜
Date를 epoch 이후의 밀리초 수로 변환합니다.

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

예시
결과
{ $toLong: true }
Long("1")
{ $toLong: false }
Long("0")
{ $toLong: 1.99999 }
Long("1")
{ $toLong: NumberDecimal("5.5000") }
Long("5")
{ $toLong: NumberDecimal("9223372036854775808.0") }
오류
{ $toLong: NumberInt(8) }
Long(8)
{ $toLong: ISODate("2018-03-26T04:38:28.044Z") }
Long("1522039108044")
{ $toLong: "-2" }
Long("-2")
{ $toLong: "2.5" }
오류
{ $toLong: null }
null

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

db.orders.insertMany( [
{ _id: 1, item: "apple", qty: NumberInt(5) },
{ _id: 2, item: "pie", qty: "100" },
{ _id: 3, item: "ice cream", qty: NumberLong("500") },
{ _id: 4, item: "almonds", qty: "50" },
] )

orders 컬렉션에 대한 다음 집계 작업은 값을 기준으로 정렬하기 전에 qty를 long으로 변환합니다.

// Define stage to add convertedQty field with converted qty value
qtyConversionStage = {
$addFields: {
convertedQty: { $toLong: "$qty" }
}
};
// Define stage to sort documents by the converted qty values
sortStage = {
$sort: { "convertedQty": -1 }
};
db.orders.aggregate( [
qtyConversionStage,
sortStage
])

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

{ _id: 3, item: 'ice cream', qty: Long("500"), convertedQty: Long("500") },
{ _id: 2, item: 'pie', qty: '100', convertedQty: Long("100") },
{ _id: 4, item: 'almonds', qty: '50', convertedQty: Long("50") },
{ _id: 1, item: 'apple', qty: 5, convertedQty: Long("5") }

참고

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

돌아가기

$toInt

이 페이지의 내용