문서 홈 → 애플리케이션 개발 → MongoDB 매뉴얼
$toDouble (애그리게이션)
정의
행동
다음 표에는 더블로 변환할 수 있는 입력 유형이 나열되어 있습니다.
입력 유형 | 행동 |
---|---|
부울 | false 인 경우 0 를 반환합니다.true 인 경우 1 를 반환합니다. |
더블 | 아니요. 더블 값을 반환합니다. |
10진수 | 10진수 값을 더블로 반환합니다. 10진수 값은 더블의 최소값과 최대값 내에 속해야 합니다. 값이 최소 더블 값보다 작거나 최대 더블 값보다 큰 10진수 값은 변환할 수 없습니다. |
Integer | int 값을 더블로 반환합니다. |
Long | 긴 값을 더블로 반환합니다. |
문자열 | 문자열의 숫자 값을 더블로 반환합니다. 문자열 값은 10진수 숫자 값 (예: 10진수가 아닌 숫자 형태의 문자열 값(예: |
날짜 | 날짜 값에 해당하는 epoch 이후의 밀리초 수를 반환합니다. |
다음 표에는 더블로 변환하는 몇 가지 예가 나와 있습니다:
예제 | 결과 |
---|---|
$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
값을 파싱하고 더블 값으로 변환합니다.
// 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
를 대신 사용하세요.