문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

toDate(집계)

이 페이지의 내용

  • 정의
  • 행동
  • 예제
$toDate

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

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

{
$toDate: <expression>
}

$toDate 는 모든 유효한 표현식을 사용합니다.

$toDate 은 다음 $convert 표현식의 약어입니다.

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

다음도 참조하세요.

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

입력 유형
행동
더블

잘린 더블 값이 나타내는 밀리초 수에 해당하는 날짜를 반환합니다.

양수는 1970년 1월 1일 이후의 밀리초 수에 해당합니다.

음수는 1970년 1월 1일 이전의 밀리초 수에 해당합니다.

10진수

잘린 10진수 값이 나타내는 밀리초 수에 해당하는 날짜를 반환합니다.

양수는 1970년 1월 1일 이후의 밀리초 수에 해당합니다.

음수는 1970년 1월 1일 이전의 밀리초 수에 해당합니다.

Long

long 값이 나타내는 밀리초 수에 해당하는 날짜를 반환합니다.

양수는 1970년 1월 1일 이후의 밀리초 수에 해당합니다.

음수는 1970년 1월 1일 이전의 밀리초 수에 해당합니다.

문자열

날짜 문자열에 해당하는 날짜를 반환합니다.

문자열은 다음과 같이 유효한 날짜 문자열이어야 합니다:

  • "2018-03-20"

  • "2018-03-20T12:00:00Z"

  • "2018-03-20T12:00:00+0500"

객체 ID
객체 ID의 타임스탬프에 해당하는 날짜를 반환합니다.
타임스탬프
타임스탬프에 해당하는 날짜를 반환합니다.

다음 표에는 날짜로의 몇 가지 변환 예가 나열되어 있습니다.

예제
결과
{$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 를 대신 사용하세요.

← $toBool(집계)

이 페이지의 내용