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

$toDouble(집계)

이 페이지의 내용

  • 정의
  • 행동
  • 예시
$toDouble

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

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

{
$toDouble: <expression>
}

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

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

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

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

입력 유형
행동
부울
Returns 0 for false.
Returns 1 for true.
Double
아니요. double 값을 반환합니다.
10진수

10진수 값을 double로 반환합니다.

10진수 값은 double의 최소값과 최대값 내에 속해야 합니다.

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

Integer
int 값을 double로 반환합니다.
Long
긴 값을 double로 반환합니다.
문자열

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

문자열 값은 10진수 숫자 값 (예: "-5.5" "123456") 이어야 하며, double의 최소값과 최대값 내에 속합니다.

10진수가 아닌 숫자 형태의 문자열 값(예: "0x6400") 이나 double의 최소값과 최대값을 벗어나는 값은 변환할 수 없습니다.

날짜
날짜 값에 해당하는 epoch 이후의 밀리초 수를 반환합니다.

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

예시
결과
$toDouble: true
1
$toDouble: false
0
$toDouble: 2.5
2.5
$toDouble: NumberInt(5)
5
$toDouble: NumberLong(10000)
10000
$toDouble: "-5.5"
-5.5
$toDouble: ISODate("2018-03-27T05:04:47.890Z")
1522127087890

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

db.weather.insertMany( [
{ _id: 1, date: new Date("2018-06-01"), temp: "26.1C" },
{ _id: 2, date: new Date("2018-06-02"), temp: "25.1C" },
{ _id: 3, date: new Date("2018-06-03"), temp: "25.4C" },
] )

다음 집계 작업은 weather 컬렉션에 대한 temp 값을 파싱하고 double 값으로 변환합니다.

// Define stage to add degrees field with converted value
tempConversionStage = {
$addFields: {
degrees: { $toDouble: { $substrBytes: [ "$temp", 0, 4 ] } }
}
};
db.weather.aggregate( [
tempConversionStage,
] )

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

{ "_id" : 1, "date" : ISODate("2018-06-01T00:00:00Z"), "temp" : "26.1C", "degrees" : 26.1 }
{ "_id" : 2, "date" : ISODate("2018-06-02T00:00:00Z"), "temp" : "25.1C", "degrees" : 25.1 }
{ "_id" : 3, "date" : ISODate("2018-06-03T00:00:00Z"), "temp" : "25.4C", "degrees" : 25.4 }

참고

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

돌아가기

$toDecimal

이 페이지의 내용