AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

$toDouble (표현식 연산자)

$toDouble

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

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

{
$toDouble: <expression>
}

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

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

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

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

입력 유형
행동

부울

0 false대해
을 반환합니다. 에 1 대해 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 이후의 밀리초 수를 반환합니다.

10 이외의 기본 문자열을 변환하려면 $convertbase 옵션과 함께 사용합니다.

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

예시
결과

$toDouble: true

1

$toDouble: false

0

$toDouble: 2.5

2.5

$toDouble: Int32(5)

5

$toDouble: Long(10000)

10000

$toDouble: "-5.5"

-5.5

$toDouble: ISODate("2018-03-27T05:04:47.890Z")

1522127087890

MongoDB 8.3 부터 서버 표현 가능한 모든 배정밀도 부동 점 숫자의 전체 범위 구문 분석할 수 있습니다. 여기에는 최상위 숫자 앞에 0이 있고 지수가 가능한 가장 작은 값을 갖는 비정규 숫자가 포함됩니다. 자세한 내용은 비정규 숫자를 참조하세요.

이전 버전의 MongoDB 에서는 이러한 숫자를 구문 분석하려고 하면 서버 오류를 반환합니다. 다음 예시 에서는 MongoDB 8.3 이전 버전에서 오류를 발생시킵니다.

db.t.insertOne( { v: "7.08263e-317" } )
db.t.aggregate([
{
$project: {
converted: {
$convert: { input: "$v", to: "double" },
}
}
}
])

이 예시 다음과 유사한 오류로 인해 실패합니다.

MongoServerError[ConversionFailure]: Executor error during aggregate command on namespace: test.t ::
caused by :: Failed to parse number '7.08263e-317' in $convert with no onError value: Out of range

다음 문서를 사용하여 컬렉션 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 를 대신 사용하세요.

이 페이지 평가하기

이 페이지의 내용