$toDecimal

$toDecimal 연산자는 입력 식을 10진수 값으로 변환합니다. Long, Double 또는 Int 값은 단순히 10진수 데이터 형식으로 변환되지만 10진수 값은 있는 그대로 반환됩니다. true의 부울 값은 1로 변환되고 부울 false는 0으로 변환됩니다. 마지막으로 ISODate는 ISODate 값으로 표현된 1970년 1월 1일 이후의 밀리초 수에 해당하는 10진수 값으로 변환됩니다.

문법

{
    $toDecimal: < expression >
}

매개 변수

매개 변수 Description
expression 10진수 값으로 변환할 지정된 값입니다.

예시

스토어 컬렉션에서 이 샘플 문서를 고려합니다.

{
    "_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4",
    "name": "First Up Consultants | Beverage Shop - Satterfieldmouth",
    "location": {
        "lat": -89.2384,
        "lon": -46.4012
    },
    "staff": {
        "totalStaff": {
            "fullTime": 8,
            "partTime": 20
        }
    },
    "sales": {
        "totalSales": 75670,
        "salesByCategory": [
            {
                "categoryName": "Wine Accessories",
                "totalSales": 34440
            },
            {
                "categoryName": "Bitters",
                "totalSales": 39496
            },
            {
                "categoryName": "Rum",
                "totalSales": 1734
            }
        ]
    },
    "promotionEvents": [
        {
            "eventName": "Unbeatable Bargain Bash",
            "promotionalDates": {
                "startDate": {
                    "Year": 2024,
                    "Month": 6,
                    "Day": 23
                },
                "endDate": {
                    "Year": 2024,
                    "Month": 7,
                    "Day": 2
                }
            },
            "discounts": [
                {
                    "categoryName": "Whiskey",
                    "discountPercentage": 7
                },
                {
                    "categoryName": "Bitters",
                    "discountPercentage": 15
                },
                {
                    "categoryName": "Brandy",
                    "discountPercentage": 8
                },
                {
                    "categoryName": "Sports Drinks",
                    "discountPercentage": 22
                },
                {
                    "categoryName": "Vodka",
                    "discountPercentage": 19
                }
            ]
        },
        {
            "eventName": "Steal of a Deal Days",
            "promotionalDates": {
                "startDate": {
                    "Year": 2024,
                    "Month": 9,
                    "Day": 21
                },
                "endDate": {
                    "Year": 2024,
                    "Month": 9,
                    "Day": 29
                }
            },
            "discounts": [
                {
                    "categoryName": "Organic Wine",
                    "discountPercentage": 19
                },
                {
                    "categoryName": "White Wine",
                    "discountPercentage": 20
                },
                {
                    "categoryName": "Sparkling Wine",
                    "discountPercentage": 19
                },
                {
                    "categoryName": "Whiskey",
                    "discountPercentage": 17
                },
                {
                    "categoryName": "Vodka",
                    "discountPercentage": 23
                }
            ]
        }
    ]
}

예제 1: Double 값을 10진수 값으로 변환

위도 필드의 값을 double에서 10진수 값으로 변환하려면 $toDecimal 연산자를 사용하여 쿼리를 실행하여 변환합니다.

db.stores.aggregate([{
    $match: {
        _id: "b0107631-9370-4acd-aafa-8ac3511e623d"
    }
}, {
    $project: {
        originalLatitude: "$location.lat",
        latitudeAsDecimal: {
            $toDecimal: "$location.lat"
        }
    }
}])

이 쿼리는 다음 결과를 반환합니다.

[
    {
        "_id": "b0107631-9370-4acd-aafa-8ac3511e623d",
        "originalLatitude": 72.8377,
        "latitudeAsDecimal": "Decimal128('72.8377000000000')"
    }
]

예제 2: ISODate 값을 10진수 값으로 변환

ISODate를 10진수 값으로 변환하려면 값에서 $toDecimal 연산자를 사용하여 쿼리를 실행하여 변환합니다.

db.stores.aggregate([{
    $match: {
        _id: "b0107631-9370-4acd-aafa-8ac3511e623d"
    }
}, {
    $project: {
        dateAsDecimal: {
            $toDecimal: ISODate("2025-01-06T00:00:00.000Z")
        }
    }
}])

이 쿼리는 다음 결과를 반환합니다.

[
    {
        "_id": "b0107631-9370-4acd-aafa-8ac3511e623d",
        "dateAsDecimal": "Decimal128('1736121600000')"
    }
]