toDate(집계)
정의
행동
다음 표에는 날짜로 변환할 수 있는 입력 유형이 나열되어 있습니다.
입력 유형 | 행동 |
---|---|
Double | 잘린 double 값이 나타내는 밀리초 수에 해당하는 날짜를 반환합니다. 양수는 1970년 1월 1일 이후의 밀리초 수에 해당합니다. 음수는 1970년 1월 1일 이전의 밀리초 수에 해당합니다. |
10진수 | 잘린 10진수 값이 나타내는 밀리초 수에 해당하는 날짜를 반환합니다. 양수는 1970년 1월 1일 이후의 밀리초 수에 해당합니다. 음수는 1970년 1월 1일 이전의 밀리초 수에 해당합니다. |
Long | long 값이 나타내는 밀리초 수에 해당하는 날짜를 반환합니다. 양수는 1970년 1월 1일 이후의 밀리초 수에 해당합니다. 음수는 1970년 1월 1일 이전의 밀리초 수에 해당합니다. |
문자열 | 날짜 문자열에 해당하는 날짜를 반환합니다. 문자열은 다음과 같이 유효한 날짜 문자열이어야 합니다:
|
ObjectId | ObjectId의 타임스탬프에 해당하는 날짜를 반환합니다. |
타임스탬프 | 타임스탬프에 해당하는 날짜를 반환합니다. |
다음 표에는 날짜로의 몇 가지 변환 예가 나열되어 있습니다.
예시 | 결과 |
---|---|
{$toDate: 120000000000.5} | ISODate("1973-10-20T21:20:00Z") |
{$toDate: NumberDecimal("1253372036000.50")} | ISODate("2009-09-19T14:53:56Z") |
{$toDate: NumberLong("1100000000000")} | ISODate("2004-11-19T11:33:20Z") |
{$toDate: NumberLong("-1100000000000")} | ISODate("1935-02-22T12:26:40Z") |
{$toDate: ObjectId("5ab9c3da31c2ab715d421285")} | ISODate("2018-03-27T04:08:58Z") |
{$toDate: "2018-03-20"} | ISODate("2018-03-20T00:00:00Z") |
{$toDate: "2018-03-20 11:00:06 +0500"} | ISODate("2018-03-20T06:00:06Z") |
{$toDate: "Friday"} | 오류 |
{$toDate: Timestamp({ t: 1637688118, i: 1 })} | ISODate("2021-11-23T17:21:58.00Z") |
예시
다음 문서를 사용하여 컬렉션 orders
를 생성합니다.
db.orders.insertMany( [ { _id: 1, item: "apple", qty: 5, price: 2, order_date: new Date( "2018-03-20" ) }, { _id: 2, item: "pie", qty: 10, price: 3, order_date: new Date( "2018-03-22" ) }, { _id: 3, item: "ice cream", qty: 2, price: 4, order_date: "2018-03-15" }, { _id: 4, item: "almonds" , qty: 5, price: 7, order_date: "2018-03-15 +10:00" } ] )
orders
컬렉션에 대한 다음 집계 작업은 날짜 값을 기준으로 정렬하기 전에 order_date
를 날짜로 변환합니다.
// Define stage to add convertedDate field with the converted order_date value dateConversionStage = { $addFields: { convertedDate: { $toDate: "$order_date" } } }; // Define stage to sort documents by the converted date sortStage = { $sort: { "convertedDate": 1 } }; db.orders.aggregate( [ dateConversionStage, sortStage ] )
이 작업은 다음 문서를 반환합니다.
{ _id: 4, item: 'almonds', qty: 5, price: 7, order_date: '2018-03-15 +10:00', convertedDate: ISODate("2018-03-14T14:00:00.000Z") }, { _id: 3, item: 'ice cream', qty: 2, price: 4, order_date: '2018-03-15', convertedDate: ISODate("2018-03-15T00:00:00.000Z") }, { _id: 1, item: 'apple', qty: 5, price: 2, order_date: ISODate("2018-03-20T00:00:00.000Z"), convertedDate: ISODate("2018-03-20T00:00:00.000Z") }, { _id: 2, item: 'pie', qty: 10, price: 3, order_date: ISODate("2018-03-22T00:00:00.000Z"), convertedDate: ISODate("2018-03-22T00:00:00.000Z") }
참고
변환 작업에 오류가 발생하면 집계 작업이 중지되고 오류가 발생합니다. 이 동작을 재정의하려면 $convert
를 대신 사용하세요.