정의
행동
다음 표에는 double로 변환할 수 있는 입력 유형이 나열되어 있습니다.
| 입력 유형 | 행동 | 
|---|---|
| 부울 | Returns  0forfalse.Returns  1fortrue. | 
| Double | 아니요. double 값을 반환합니다. | 
| 10진수 | 10진수 값을 double로 반환합니다. 10진수 값은 double의 최소값과 최대값 내에 속해야 합니다. 값이 최소 double 값보다 작거나 최대 double 값보다 큰 10진수 값은 변환할 수 없습니다. | 
| Integer | int 값을 double로 반환합니다. | 
| Long | 긴 값을 double로 반환합니다. | 
| 문자열 | 문자열의 숫자 값을 double로 반환합니다. 문자열 값은 10진수 숫자 값 (예:  10진수가 아닌 숫자 형태의 문자열 값(예:  | 
| 날짜 | 날짜 값에 해당하는 epoch 이후의 밀리초 수를 반환합니다. | 
다음 표에는 double로 변환하는 몇 가지 예가 나와 있습니다:
| 예시 | 결과 | 
|---|---|
| 
 | 1 | 
| 
 | 0 | 
| 
 | 2.5 | 
| 
 | 5 | 
| 
 | 10000 | 
| 
 | -5.5 | 
| 
 | 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 를 대신 사용하세요.